BR112021016689A2 - 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 - Google Patents

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 Download PDF

Info

Publication number
BR112021016689A2
BR112021016689A2 BR112021016689-0A BR112021016689A BR112021016689A2 BR 112021016689 A2 BR112021016689 A2 BR 112021016689A2 BR 112021016689 A BR112021016689 A BR 112021016689A BR 112021016689 A2 BR112021016689 A2 BR 112021016689A2
Authority
BR
Brazil
Prior art keywords
video
current
conversion
petition
candidates
Prior art date
Application number
BR112021016689-0A
Other languages
English (en)
Inventor
Kai Zhang
Li Zhang
Hongbin Liu
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.
Publication of BR112021016689A2 publication Critical patent/BR112021016689A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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/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
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)
  • Image Processing (AREA)
  • Studio Circuits (AREA)

Abstract

método e aparelho para processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios. um método de processamento de vídeo é provido para compreender: realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ilr) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que compreende um elemento de sintaxe que especifica uma diferença entre um máximo índice de bin permitido e um máximo índice de bin a ser usado na reconstrução, e em que o parâmetro fica em uma faixa.

Description

1 / 111
MÉTODO E APARELHO PARA PROCESSAMENTO DE DADOS DE VÍDEO, E, MEIOS DE ARMAZENAMENTO E DE GRAVAÇÃO
LEGÍVEIS POR COMPUTADOR NÃO TRANSITÓRIOS Referência Cruzada a Pedidos Relacionados
[001] O presente pedido se baseia no Pedido de Patente Internacional Nº PCT/CN2020/078388, depositado em 9 de março de 2020, que reivindica a prioridade e o benefício do Pedido de Patente Internacional Nº PCT/CN2019/077429, depositado em 8 de março de 2019. Todos os pedidos de patente acima mencionados estão aqui incorporados em sua totalidade por referência. Campo Técnico
[002] Este documento patentário se refere a técnicas, dispositivos e sistemas de codificação de vídeo. Fundamentos da Invenção
[003] Atualmente, esforços estão em curso para melhorar o desempenho das atuais tecnologias de codec de vídeo para prover melhores razões de compressão ou prover esquemas de codificação e de decodificação de vídeo que permitem complexidade inferior ou implementações em paralelo. Especialistas da indústria recentemente propuseram diversas inéditas ferramentas de codificação de vídeo e testes estão atualmente em curso para determinar suas efetividades. Sumário
[004] Dispositivos, sistemas e métodos relacionados a codificação de vídeo digital, e especificamente, à sinalização da etapa de quantização e interações de remodelagem em laço com base em bloco com outras ferramentas na codificação de vídeo. Isto pode ser aplicado ao existente padrão de codificação de vídeo, como HEVC, ou ao padrão (Codificação de Vídeo Versátil) a ser finalizado. Isto pode ser também aplicável aos futuros padrões de codificação de vídeo ou codec de vídeo.
2 / 109 conversão entre uma representação codificada do vídeo e o vídeo, em que a informação de modelo de remodelagem provê informação para construir amostras de vídeo em um primeiro domínio e um segundo domínio e/ou escalar resíduo de croma de uma unidade de vídeo de croma.
[005] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui determinar, para uma conversão entre uma representação codificada de um vídeo compreendendo uma mais regiões de vídeo e o vídeo, um valor de uma variável na informação de modelo de remodelagem como uma função de uma profundidade de bit do vídeo, e realizar a conversão com base na determinação, em que a informação de remodelagem é aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, e em que a informação de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma.
[006] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação da unidade de vídeo em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem foi inicializada com base em uma regra de inicialização.
[007] Em um outro aspecto representativo, a tecnologia descrita
3 / 109 pode ser usada para prover um método para processamento de vídeo. Este método inclui determinar, para uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, se habilita-se ou desabilita-se uma remodelagem em laço (ILR); e realizar a conversão com base na determinação, e em que a representação codificada inclui informação de modelo de remodelagem aplicável para a ILR de algumas de uma ou mais regiões de vídeo, e em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma região de vídeo com base em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a determinação determina desabilitar a ILR em um caso em que a informação de modelo de remodelagem não for inicializada.
[008] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, em que a informação de modelo de remodelagem é incluída na representação codificada apenas se a região de vídeo for codificada usando um tipo de codificação específico.
[009] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui determinar, para uma conversão entre uma primeira região de vídeo de um vídeo e uma representação codificada da primeira região de vídeo, se informação de remodelagem proveniente de uma segunda região de
4 / 109 vídeo é usável para a conversão com base em uma regra; e realizar a conversão de acordo com a determinação.
[0010] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma região de vídeo de um vídeo e uma representação codificada da região de vídeo de maneira tal que a região de vídeo atual seja codificada usando uma intracodificação, em que a representação codificada se conforma com uma regra de formato que especifica para a informação de modelo de remodelagem na representação codificada condicionalmente com base em um valor de um indicador na representação codificada em um nível da região de vídeo.
[0011] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que compreende um elemento de sintaxe que especifica uma diferença entre um máximo índice de bin permitido e um máximo índice de bin a ser usado na reconstrução, e em que o parâmetro fica em uma faixa.
[0012] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação codificada de
5 / 109 um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que compreende um máximo índice de bin a ser usado na reconstrução, e em que o máximo índice de bin é derivado como um primeiro valor igual a uma soma de um mínimo índice de bin a ser usado na reconstrução e um elemento de sintaxe que é um número inteiro não sinalizado e sinalizado depois do mínimo índice de bin.
[0013] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui um primeiro elemento de sintaxe que deriva um número de bits usados para representar um segundo elemento de sintaxe que especifica um valor de palavra código delta absoluto a partir de um bin correspondente, e em que o primeiro elemento de sintaxe tem um valor menor do que um limite.
6 / 109
[0014] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui um i-ésimo parâmetro que representa uma inclinação de um i-ésimo bin usado na ILR e tem um valor com base em um (i-1)ésimo parâmetro, i sendo um número inteiro positivo.
[0015] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem usada para a ILR compreende um conjunto de parâmetro que inclui reshape_model_bin_delta_sign_CW [ i ] que não é sinalizado e RspDeltaCW[ i ] = reshape_model_bin_delta_abs_CW [ i ] é sempre um número positivo.
[0016] Em um outro aspecto representativo, a tecnologia descrita
7 / 109 pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui um parâmetro, invAvgLuma, para usar valores de luma para a escala dependendo de um formato de cor da região de vídeo.
[0017] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar 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 um processo de mapeamento inverso da figura para transformar amostras de luma da figura reconstruídas em amostras de luma da figura reconstruídas modificadas, em que o processo de mapeamento inverso da figura inclui limitação na qual um limite superior e um limite inferior são ajustados separadamente um do outro.
[0018] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê
8 / 109 informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui uma quantidade pivô restrita de maneira tal que Pivot[ i ]<=T.
[0019] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação aplicável para uma remodelagem em laço (ILR) e provê parâmetros para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que um parâmetro de quantização (QP) de croma tem um deslocamento cujo valor é derivado para cada bloco ou unidade de transformação.
[0020] Em um outro aspecto representativo, a tecnologia descrita pode ser usada para prover um método para processamento de vídeo. Este método inclui realizar uma conversão entre uma representação de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação aplicável para uma remodelagem em laço (ILR) e provê parâmetros para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que um parâmetro de quantização (QP) de luma tem um deslocamento cujo valor é derivado para cada bloco ou unidade de transformação.
[0021] Um ou mais dos métodos supradescritos pode ser uma
9 / 109 implementação no lado do codificador ou uma implementação no lado do decodificador.
[0022] Adicionalmente, em um aspecto representativo, um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma é descrito. As instruções, mediante execução pelo processador, fazem com que o processador implemente qualquer um ou mais dos métodos descritos.
[0023] Também, 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 qualquer um ou mais dos métodos descritos, é descrito.
[0024] Os aspectos e as características expostos e ainda outros da tecnologia descrita são descritos com mais detalhes nos desenhos, na descrição e nas reivindicações. Breve Descrição dos Desenhos
[0025] A figura 1 mostra um exemplo de construção de uma lista de candidato de mescla.
[0026] A figura 2 mostra um exemplo de posições de candidatos espaciais.
[0027] A figura 3 mostra um exemplo de pares candidatos sujeitos a uma verificação de redundância de candidatos a mescla espacial.
[0028] As figuras 4A e 4B mostram exemplos da posição de uma segunda unidade de previsão (PU) com base no tamanho e na forma do bloco atual.
[0029] A figura 5 mostra um exemplo de escala de vetor de movimento para candidatos a mescla temporal.
[0030] A figura 6 mostra um exemplo de posições candidatas para candidatos a mescla temporal.
[0031] A figura 7 mostra um exemplo de geração de um candidato a
10 / 109 mescla bipreditiva combinada.
[0032] A figura 8 mostra um exemplo de construção de candidatos a previsão do vetor de movimento.
[0033] A figura 9 mostra um exemplo de escala de vetor de movimento para candidatos a vetor de movimento espacial.
[0034] A figura 10 mostra um exemplo de previsão do vetor de movimento temporal alternativa (ATMVP).
[0035] A figura 11 mostra um exemplo de previsão do vetor de movimento espacial-temporal.
[0036] A figura 12 mostra um exemplo de amostras vizinhas para derivar parâmetros de compensação de iluminação local.
[0037] As figuras 13A e 13B mostram ilustrações em conexão com um modelo afim de 4 parâmetros e um modelo afim de 6 parâmetros, respectivamente.
[0038] A figura 14 mostra um exemplo de um campo do vetor de movimento afim por sub-bloco.
[0039] As figuras 15A e 15B mostram exemplos de um modelo afim de 4 parâmetros e um modelo afim de 6 parâmetros, respectivamente.
[0040] A figura 16 mostra um exemplo de previsão do vetor de movimento para modo inter afim para candidatos afins herdados.
[0041] A figura 17 mostra um exemplo de previsão do vetor de movimento para modo inter afim para candidatos afins construídos.
[0042] As figuras 18A e 18B mostram ilustrações em conexão com um modo de mescla afim.
[0043] A figura 19 mostra exemplos de posições candidatas para um modo de mescla afim.
[0044] A figura 20 mostra um exemplo de um processo de busca de expressão de vetor primordial (UMVE).
[0045] A figura 21 mostra um exemplo de um ponto de busca UMVE.
11 / 109
[0046] A figura 22 mostra um exemplo de refinamento de vídeo em movimento no lado do decodificador (DMVR).
[0047] A figura 23 mostra um fluxograma tipo diagrama de blocos de decodificação com etapa de remodelagem.
[0048] A figura 24 mostra exemplos de amostras em um filtro bilateral.
[0049] A figura 25 mostra exemplos de amostras janeladas utilizadas em cálculos de peso.
[0050] A figura 26 mostra um padrão de escaneamento de exemplo.
[0051] As figuras 27A e 27B são diagramas de blocos dos exemplos de uma plataforma de hardware para implementar um processamento de mídia visual descrito no presente documento.
[0052] As figuras 28A a 28E mostram fluxogramas de métodos de exemplo para processamento de vídeo com base em algumas implementações da tecnologia descrita. Descrição Detalhada
1. Codificação de vídeo em HEVC/H.265
[0053] Padrões de codificação de vídeo evoluíram primariamente através do desenvolvimento dos bem conhecidos padrões ITU-T e ISO/IEC. O ITU-T produziu H.261 e H.263, ISO/IEC produziu MPEG-1 e MPEG-4 Visual, e as duas organizações conjuntamente produziram os padrões H.262/MPEG-2 Vídeo e H.264/MPEG-4 Codificação de Vídeo Avançada (AVC) e H.265/HEVC. Desde H.262, os padrões de codificação de vídeo são com base na estrutura de codificação de vídeo híbrida em que previsão temporal mais codificação com transformação são utilizadas. Para explorar as futuras tecnologias de codificação de vídeo além de HEVC, Equipe de Exploração de Vídeo em Conjunto (JVET) foi fundada por VCEG e MPEG conjuntamente em 2015. Desde então, muitos métodos inéditos foram adotados por JVET e colocados no software de referência chamado Modelo
12 / 109 de Exploração Conjunto (JEM). Em abril de 2018, a Equipe Conjunta de Especialistas de Vídeo (JVET) entre VCEG (Q6/16) e ISO/IEC JTC1 SC29/WG11 (MPEG) foi criada para funcionar no padrão VVC visando à redução de taxa de bits de 50%, se comparado a HEVC. A mais recente versão de esboço VVC, isto é, Codificação de Vídeo Versátil (Esboço 2) pode ser verificada em http://phenix.it- sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K1001- v7.zip.
[0054] O mais recente software de referência de VVC, chamado VTM, pode ser verificado em: https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-2.1
2.1. Interprevisão em HEVC/H.265
[0055] Cada PU interprevista tem parâmetros de movimento para uma ou duas listas de figura de referência. Os parâmetros de movimento incluem um vetor de movimento e um índice da figura de referência. O uso de uma das duas listas de figura de referência também pode ser sinalizado usando inter_pred_idc. Vetores de movimento podem ser explicitamente codificados como deltas em relação a previsores.
[0056] Quando uma CU for codificada com modo ignorar, uma PU é associada com a CU, e não há significativos coeficientes residuais, nenhum delta de vetor de movimento codificado ou índice da figura de referência. Um modo de mescla é especificado, de acordo com o que, os parâmetros de movimento para a PU atual são obtidos a partir de PUs vizinhas, incluindo candidatos espacial e temporal. O modo de mescla pode ser aplicado em qualquer PU interprevista, não apenas para o modo ignorar. A alternativa ao modo de mescla é a transmissão explícita de parâmetros de movimento, em que o vetor de movimento (para ser mais preciso, as diferenças do vetor de movimento (MVD), se comparado a um previsor do vetor de movimento), correspondente índice da figura de referência para cada lista da figura de
13 / 109 referência e uso de lista da figura de referência são sinalizados explicitamente por cada PU. Um modo como este é chamado previsão do vetor de movimento avançada (AMVP) nesta descrição.
[0057] Quando a sinalização indicar que uma das duas listas de figura de referência deve ser usada, a PU é produzida a partir de um bloco de amostras. Isto é referido como “uniprevisão”. A uniprevisão está disponível tanto para fatias P quanto para fatias B.
[0058] Quando a sinalização indicar que ambas as listas de figura de referência devem ser usadas, a PU é produzida a partir de dois blocos de amostras. Isto é referido como “biprevisão”. Biprevisão está disponível para fatias B apenas.
[0059] O seguinte texto provê os detalhes nos modos de interprevisão especificados em HEVC. A descrição irá iniciar com o modo de mescla.
2.1.1. Lista da figura de referência
[0060] Em HEVC, o termo interprevisão é usado para denotar a previsão derivada a partir de elementos de dados (por exemplo, valores de amostra ou vetores de movimento) das figuras de referência diferentes da atual figura decodificada. Como em H.264/AVC, uma figura pode ser prevista a partir de múltiplas figuras de referência. As figuras de referência que são usadas para interprevisão são organizadas em uma ou mais listas de figura de referência. O índice de referência identifica quais das figuras de referência na lista devem ser usadas para criar o sinal de previsão.
[0061] Uma única lista da figura de referência, Lista 0, é usada para uma fatia P e duas listas de figura de referência, Lista 0 e Lista 1, são usadas para fatias B. Deve ser notado que as figuras de referência incluídas na Lista 0/1 podem ser provenientes de figuras passadas e futuras em termos de ordem de captura/exibição.
2.1.2. Modo de mescla
2.1.2.1. Derivação de candidatos para modo de mescla
14 / 109
[0062] Quando uma PU for prevista usando modo de mescla, um índice que aponta para uma entrada na lista de candidatos de mescla é analisado a partir do fluxo contínuo de bits e usado para recuperar a informação de movimento. A construção desta lista é especificada no padrão HEVC e pode ser sumarizada de acordo com a seguinte sequência de etapas: * Etapa 1: Derivação de candidatos inicial * 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
[0063] Estas etapas também são esquematicamente representadas na figura 1. Para derivação de candidato a mescla espacial, um máximo de quatro candidatos a mescla é selecionado a partir dos candidatos que estão localizados em cinco posições diferentes. Para derivação de candidato a mescla temporal, um máximo de um candidato a mescla é selecionado a partir de dois candidatos. Já que um número constante de candidatos para cada PU é considerado no decodificador, candidatos adicionais são gerados quando o número de candidatos obtidos a partir da etapa 1 não alcançar o máximo número de candidato a mescla (MaxNumMergeCand) que é sinalizado no cabeçalho de fatia. Já que o número de candidatos é constante, o índice de melhor candidato a mescla é codificado usando 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 candidato de mescla, que é idêntica à lista de candidato de mescla da unidade de previsão 2N x 2N.
[0064] A seguir, as operações associadas com as supramencionadas etapas são detalhadas.
15 / 109
2.1.2.2. Derivação de candidatos espaciais
[0065] Na derivação de candidatos a mescla espacial, um máximo de quatro candidatos a mescla é selecionado a partir dos candidatos localizados nas posições representadas na figura 2. A ordem da derivação é A1, B1, B0, A0 e B2. Posição B2 é considerada apenas quando qualquer PU da posição A1, B1, B0, A0 não estiver disponível (por exemplo, em virtude de a mesma pertencer a uma outra fatia ou quadriculado) ou for intracodificada. Depois que o candidato na posição A1 for adicionado, a adição dos candidatos restantes é sujeita a uma verificação de redundância que garante que candidatos com a mesma informação de movimento sejam excluídos da lista, de forma que a eficiência da codificação seja melhorada. Para reduzir a complexidade computacional, nem todos os pares candidatos possíveis são considerados na verificação de redundância mencionada. Em vez disto, apenas os pares ligados com uma seta na figura 3 são considerados e um candidato é apenas adicionado na lista se o correspondente candidato usado para verificação de redundância não tiver a mesma informação de movimento. Uma outra fonte de informação de movimento duplicada é a “segunda PU” associada com partições diferentes de 2N x 2N. Como um exemplo, as figuras 4A e 4B representam a segunda PU para os casos N x 2N e 2N x N, respectivamente. Quando a PU atual for particionada como N x 2N, o candidato na posição A1 não é considerado para construção da lista. De fato, pela adição, este candidato irá levar a duas unidades de previsão com a mesma informação de movimento, que é redundante para ter somente uma PU em uma unidade de codificação. Similarmente, a posição B1 não é considerada quando a PU atual for particionada como 2N x N.
2.1.2.3. Derivação de candidatos temporais
[0066] Nesta etapa, apenas um candidato é adicionado na lista. Particularmente, na derivação deste candidato a mescla temporal, um vetor de movimento escalado é derivado com base na PU colocalizada que pertence à
16 / 109 figura que tem a menor diferença de POC com figura atual na dada lista da figura de referência. A lista da figura de referência a ser usada para derivação da PU colocalizada é explicitamente sinalizada no cabeçalho de fatia. O vetor de movimento escalado para o candidato a mescla temporal é obtido da forma ilustrada pela linha pontilhada na figura 5, que é escalado a partir do vetor de movimento da PU colocalizada usando as distâncias POC, tb e td, em que tb é definido como a diferença de POC entre a figura de referência da figura atual e a figura atual e td é definido como a diferença de POC entre a figura de referência da figura colocalizada e a figura colocalizada. O índice da figura de referência do candidato a mescla temporal é ajustado igual a zero. Uma realização prática do processo de escala é descrita na especificação HEVC. Para uma fatia B, dois vetores de movimento, um é para a lista da figura de referência 0 e o outro é para a lista da figura de referência 1, são obtidos e combinados para fazer o candidato a mescla bipreditiva.
[0067] Na PU colocalizada (Y) que pertence ao quadro de referência, a posição para o candidato temporal é selecionada entre os candidatos C0 e C1, da forma representada na figura 6. Se a PU na posição C0 não estiver disponível, for intracodificada, ou estiver fora da atual linha da unidade da árvore de codificação (CTU também conhecido coma LCU, maior unidade de codificação), a posição C1 é usada. Caso contrário, a posição C0 é usada na derivação do candidato a mescla temporal.
2.1.2.4. Inserção de candidatos adicionais
[0068] Além dos candidatos a mescla espacial e temporal, há dois tipos adicionais de candidatos a mescla: candidato a mescla bipreditiva combinada e candidato a mescla zero. Os candidatos a mescla bipreditiva combinada são gerados pela utilização dos candidatos a mescla espacial e temporal. O candidato a mescla bipreditiva combinada é usado para fatia B apenas. Os candidatos bipreditivos combinados são gerados pela combinação dos primeiros parâmetros de movimento da lista da figura de referência de um
17 / 109 candidato inicial com os segundos parâmetros de movimento da lista da figura de referência de uma outra. Se estas duas tuplas proverem diferentes hipóteses de movimento, as mesmas irão formar um novo candidato bipreditivo. Como um exemplo, a figura 7 representa o caso em que dois candidatos na lista original (na esquerda), que tem mvL0 e refIdxL0 ou mvL1 e refIdxL1, são usados para criar um candidato a mescla bipreditiva combinada adicionado na lista final (na direita). Há inúmeras regras em relação às combinações que são consideradas para gerar estes candidatos a mescla adicionais.
[0069] Candidatos de movimento zero são inseridos para preencher as entradas restantes na lista de candidatos de mescla e, portanto, atingem a capacidade MaxNumMergeCand. Estes candidatos têm zero deslocamento espacial e um índice da figura de referência que inicia a partir de zero e aumenta toda vez que um novo candidato a movimento zero for adicionado na lista. Finalmente, nenhuma verificação de redundância é realizada nestes candidatos.
2.1.3. AMVP
[0070] AMVP explora correlação espaço-temporal do vetor de movimento com PUs vizinhas, o que é usado para a transmissão explícita dos parâmetros de movimento. Para cada lista da figura de referência, uma lista de candidato a vetor de movimento é construída, primeiramente, pela verificação da disponibilidade da esquerda, acima das posições de PU temporalmente vizinhas, removendo os candidatos redundantes e adicionando vetor zero para tornar a lista de candidato com comprimento constante. Então, o codificador pode selecionar o melhor previsor a partir da lista de candidato e transmitir o correspondente índice que indica o candidato escolhido. Similarmente com a sinalização do índice de mescla, o índice do melhor candidato a vetor de movimento é codificado usando unário truncado. O máximo valor a ser codificado neste caso é 2 (por exemplo, veja a figura 8). Nas seguintes seções, detalhes sobre o processo de derivação do candidato a previsão do vetor de
18 / 109 movimento são providos.
2.1.3.1. Derivação de candidatos a AMVP
[0071] A figura 8 sumariza o processo de derivação para candidato a previsão do vetor de movimento.
[0072] Na previsão do vetor de movimento, dois tipos de candidatos a vetor de movimento são considerados: candidato a vetor de movimento espacial e candidato a vetor de movimento temporal. Para a derivação do candidato a vetor de movimento espacial, dois candidatos a vetor de movimento são eventualmente derivados com base nos vetores de movimento de cada PU localizada em cinco posições diferentes, da forma representada na figura 2.
[0073] Para a derivação do candidato a vetor de movimento temporal, um candidato a vetor de movimento é selecionado a partir de dois candidatos, que são derivados com base em duas posições colocalizadas diferentes. Depois que a primeira lista de candidatos espaço-temporais for feita, candidatos a vetor de movimento duplicados na lista são removidos. Se o número de candidatos em potencial for maior do que dois, candidatos a vetor de movimento cujo índice da figura de referência na lista da figura de referência associada é maior do que 1 são removidos da lista. Se o número de candidatos a vetor de movimento espaço-temporal for menor do que dois, candidatos a vetor de movimento zero adicionais são adicionados na lista.
2.1.3.2. Candidatos a vetor de movimento espacial
[0074] Na derivação dos candidatos a vetor de movimento espacial, um máximo de dois candidatos é considerado a partir de cinco candidatos em potencial, que são derivados a partir das PUs localizadas em posições, da forma representada na figura 2, estas posições sendo as mesmas da mescla 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
19 / 109 escalado, B2 escalado. Para cada lado, há, portanto, quatro casos que podem ser usados como candidato a vetor de movimento, com dois casos não exigidos para usar escala espacial, e dois casos em que escala espacial é usada. Os quatro casos diferentes são sumarizados como segue.
[0075] * Na escala espacial - (1) Mesma lista da figura de referência, e mesmo índice da figura de referência (mesmo POC) - (2) Lista da figura de referência diferente, mas mesma figura de referência (mesmo POC) * Escala espacial - (3) Mesma lista da figura de referência, mas diferente figura de referência (diferente POC) - (4) Lista da figura de referência diferente, e diferente figura de referência (diferente POC).
[0076] Os casos sem escala espacial são verificados primeiro, seguido pela escala espacial. A escala espacial é considerada quando o POC for diferente entre a figura de referência da PU vizinha e aquele da PU atual, independente da lista da figura de referência. Se todas as PUs de candidatos à esquerda não estiverem disponíveis ou forem intracodificadas, a escala para o vetor de movimento acima é permitida para ajudar a derivação paralela de candidatos a MV à esquerda e acima. Caso contrário, a escala espacial não é permitida para o vetor de movimento acima.
[0077] Em um processo de escala espacial, o vetor de movimento da PU vizinha é escalado de uma maneira similar àquela para escala temporal, da forma representada como a figura 9. A principal diferença é que a lista da figura de referência e o índice da PU atual são dados como entrada; o processo de escala real é igual àquele da escala temporal.
2.1.3.3. Candidatos a vetor de movimento temporal
[0078] Para além da derivação do índice da figura de referência, todos
20 / 109 os processos para a derivação de candidatos a mescla temporal são os mesmos para a derivação dos candidatos a vetor de movimento espacial (veja a figura 6). O índice da figura de referência é sinalizado para o decodificador.
2.2. Métodos de previsão do vetor de movimento com base em sub-CU em
JEM
[0079] Em JEM com QTBT, cada CU pode ter, no máximo, um conjunto de parâmetros de movimento para cada direção de previsão. Dois métodos de previsão do vetor de movimento no nível sub-CU são considerados no codificador pela divisão de uma grande CU em sub-CUs e pela derivação da informação de movimento para todas as sub-CUs da grande CU. O método de previsão do vetor de movimento temporal alternativa (ATMVP) permite que cada CU busque múltiplos conjuntos de informação de movimento a partir de múltiplos blocos menores do que a CU atual na figura de referência colocalizada. No método de previsão do vetor de movimento espacial-temporal (STMVP), vetores de movimento das sub-CUs são derivados recursivamente pelo uso do previsor do vetor de movimento temporal e do vetor de movimento vizinho espacial.
[0080] Para preservar campo de movimento mais preciso para a previsão de movimento da sub-CU, a compressão de movimento para os quadros de referência é atualmente desabilitada.
2.2.1. Previsão do vetor de movimento temporal alternativa
[0081] A figura 10 mostra um exemplo da previsão do vetor de movimento temporal alternativa (ATMVP). No método da previsão do vetor de movimento temporal alternativa (ATMVP), a previsão do vetor de movimento temporal dos vetores de movimento (TMVP) é modificada pela busca de múltiplos conjuntos de informação de movimento (incluindo vetores de movimento e índices de referência) a partir de blocos menores do que a atual CU. As sub-CUs são blocos N x N quadrados (N é ajustado em 4 por padrão).
21 / 109
[0082] ATMVP prevê os vetores de movimento das sub-CUs em uma CU em duas etapas. A primeira etapa é para identificar o correspondente bloco em uma figura de referência com um assim denominado vetor temporal. A figura de referência é chamada de figura de origem de movimento. A segunda etapa é dividir a CU atual em sub-CUs 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.
[0083] Na primeira etapa, uma figura de referência e o correspondente bloco são determinados pela informação de movimento dos blocos vizinhos espaciais da atual CU. Para evitar o repetitivo processo de escaneamento dos blocos vizinhos, o primeiro candidato a mescla na lista de candidato de mescla da CU atual é usado. O primeiro vetor de movimento disponível, bem como seu índice de referência associado, são ajustados para ser o vetor temporal e o índice para a figura de origem de movimento. Desta maneira, em ATMVP, o correspondente bloco pode ser mais precisamente identificado, comparado com TMVP, em que o correspondente bloco (algumas vezes chamado de bloco colocalizado) é sempre em uma posição na base-direita ou central em relação à atual CU.
[0084] Na segunda etapa, um correspondente bloco da sub-CU é identificado pelo vetor temporal na figura de origem de movimento, pela adição, na coordenada da atual CU, do vetor temporal. Para cada sub-CU, a informação de movimento de seu correspondente bloco (a menor grade de movimento que cobre a amostra do centro) é usada para derivar a informação de movimento para a sub-CU. Depois que a informação de movimento de um correspondente bloco N x N for identificada, a mesma é convertida para os vetores de movimento e os índices de referência da atual sub-CU, da mesma maneira que TMVP de HEVC, em que a escala de movimento e outros procedimentos se aplicam. Por exemplo, o decodificador verifica se a condição de baixo atraso (isto é, os POCs de todas as figuras de referência da
22 / 109 figura atual são menores do que o POC da figura atual) é satisfeita e, possivelmente, usa o vetor de movimento MVx (o vetor de movimento correspondente à lista da figura de referência X) para prever o vetor de movimento MVy (com X sendo igual a 0 ou 1 e Y sendo igual a 1-X) para cada sub-CU.
2.2.2. Previsão do vetor de movimento espaço-temporal (STMVP)
[0085] Neste método, os vetores de movimento das sub-CUs são derivados recursivamente, seguindo a ordem de escaneamento de rasterização. A figura 11 ilustra este conceito. Considere uma CU 8 x 8 que contém quatro sub-CUs 4 x 4 A, B, C, e D. Os blocos 4 x 4 vizinhos no quadro atual são rotulados como a, b, c, e d.
[0086] A derivação de movimento para a sub-CU A inicia pela identificação de seus dois vizinhos espaciais. O primeiro vizinho é o bloco N x N acima da sub-CU A (bloco c). Se este bloco c não estiver disponível ou for intracodificado, os outros blocos N x N acima da sub-CU A são verificados (da esquerda para a direita, começando no bloco c). O segundo vizinho é um bloco à esquerda da sub-CU A (bloco b). Se o bloco b não estiver disponível ou for intracodificado, outros blocos à esquerda da sub-CU A são verificados (do topo até a base, começando no bloco b). A informação de movimento obtida a partir dos blocos vizinhos para cada lista é escalada para o primeiro quadro de referência para uma dada lista. A seguir, o previsor do vetor de movimento temporal (TMVP) do sub-bloco A é derivado por seguir o mesmo procedimento da derivação do TMVP, da forma especificada em HEVC. A informação de movimento do bloco colocalizado no local D é buscado e escalada desta maneira. Finalmente, depois da recuperação e da escala da informação de movimento, todos os vetores de movimento disponíveis (até 3) são ponderados separadamente para cada lista de referência. O vetor de movimento ponderado é atribuído como o vetor de movimento ao sub-CU atual.
23 / 109
2.2.3. Sinalização do modo de previsão de movimento da sub-CU
[0087] Os modos da sub-CU são habilitados como candidatos a mescla adicionais e não há elemento de sintaxe adicional exigido para sinalizar os modos. Dois candidatos a mescla adicionais são adicionados na lista de candidatos de mescla de cada CU para representar o modo ATMVP e o modo STMVP. Até sete candidatos a mescla são usados, se o conjunto de parâmetro de sequência indicar que ATMVP e STMVP são habilitados. A lógica de codificação dos candidatos a mescla adicionais é a mesma para os candidatos a mescla em HM, o que significa, para cada CU na fatia P ou B, que mais duas verificações RD são necessárias para os dois candidatos a mescla adicionais.
[0088] Em JEM, todos os bins do índice de mescla são codificados no contexto por CABAC. Enquanto isto, em HEVC, apenas o primeiro bin é codificado no contexto e os bins restantes são codificados com desvio no contexto.
2.3. Compensação de iluminação local em JEM
[0089] A compensação de iluminação local (LIC) é com base em um modelo linear para mudanças de iluminação, usando um fator de escala a e um deslocamento b. E a mesma é habilitada ou desabilitada adaptativamente para cada unidade de codificação (CU) codificada em modo inter.
[0090] Quando LIC se aplicar para uma CU, um método do erro quadrático mínimo é empregado para derivar os parâmetros a e b pelo uso das amostras vizinhas da CU atual e suas correspondentes amostras de referência. Mais especificamente, da forma ilustrada na figura 12, as amostras subamostradas (subamostragem 2:1) vizinhas da CU e as amostras correspondentes (identificadas pela informação de movimento da CU ou sub- CU atual) na figura de referência são usadas.
2.3.1. Derivação de blocos de previsão
[0091] Os parâmetros IC são derivados e aplicados para cada direção
24 / 109 de previsão separadamente. Para cada direção de previsão, um primeiro bloco de previsão é gerado com a informação de movimento decodificada, então, um bloco de previsão temporário é obtido por meio da aplicação do modelo LIC. Posteriormente, os dois blocos de previsão temporários são utilizados para derivar o bloco de previsão final.
[0092] Quando uma CU for codificada com modo de mescla, o indicador LIC é copiado a partir de blocos vizinhos, de uma maneira similar à cópia da informação de movimento no modo de mescla; caso contrário, um indicador LIC é sinalizado para que a CU indique se LIC se aplica ou não.
[0093] Quando LIC for habilitada para uma figura, verificação RD no nível da CU adicional é necessária para determinar se LIC é aplicada ou não para uma CU. Quando LIC for habilitada para uma CU, soma de diferença absoluta com média removida (MR-SAD) e soma da diferença da transformada de Hadamard absoluta com média removida (MR-SATD) são usadas, em vez de SAD e SATD, para busca de movimento pel integral e busca de movimento pel fracionário, respectivamente.
[0094] Para reduzir a complexidade da codificação, o seguinte esquema de codificação é aplicado no JEM.
[0095] * LIC é desabilitada para a íntegra da figura quando não houver óbvia mudança de iluminação entre uma figura atual e suas figuras de referência. Para identificar esta situação, histogramas de uma figura atual e cada figura de referência da figura atual são calculados no codificador. Se a diferença do histograma entre a figura atual e cada figura de referência da figura atual for menor do que um dado limite, LIC é desabilitada para a figura atual; caso contrário, LIC é habilitada para a figura atual.
2.4. Métodos de interprevisão em VVC
[0096] Há diversas inéditas ferramentas de codificação para melhoria da interprevisão, tais como resolução da diferença do vetor de movimento adaptativa (AMVR) para sinalização de MVD, modo de previsão afim, modo
25 / 109 de previsão Triangular (TPM), ATMVP, Biprevisão Generalizada (GBI), Fluxo Óptico Bidirecional (BIO).
2.4.1. Estrutura do bloco de codificação em VVC
[0097] Em VVC, uma estrutura de Árvore Quádrupla/Árvore Binária/Árvore Múltipla (QT/BT/TT) é adotada para dividir uma figura em blocos quadrados ou retangulares.
[0098] Além de QT/BT/TT, árvore separada (também conhecida como árvore de codificação Dual) também é adotada em VVC para quadros I. Com árvore separada, a estrutura do bloco de codificação é sinalizada separadamente para os componentes de luma e de croma.
2.4.2 Resolução da diferença do vetor de movimento adaptativa
[0099] Em HEVC, diferenças do vetor de movimento (MVDs) (entre o vetor de movimento e o vetor de movimento previsto de uma PU) são sinalizadas em unidades de amostras de luma em um quarto quando use_integer_mv_flag for igual a 0 no cabeçalho de fatia. Em VVC, uma resolução do vetor de movimento localmente adaptativa (AMVR) é introduzida. Em VVC, MVD pode ser codificado em unidades de amostras de luma em um quarto, amostras de luma integrais ou quatro amostras de luma (isto é, ¼-pel, 1-pel, 4-pel). A resolução MVD é controlada no nível da unidade de codificação (CU), e indicadores da resolução MVD são condicionalmente sinalizados para cada CU que tem pelo menos um componente MVD não zero.
[00100] Para uma CU que tem pelo menos um componente MVD não zero, um primeiro indicador é sinalizado para indicar se precisão MV da amostra de luma em um quarto é usada na CU. Quando o primeiro indicador (igual a 1) indicar que a precisão MV da amostra de luma em um quarto não é usada, um outro indicador é sinalizado para indicar se precisão MV de amostra de luma integral ou precisão MV de quatro amostras de luma é usada.
[00101] Quando o primeiro indicador de resolução MVD de uma CU
26 / 109 for zero, ou não codificado para uma CU (significando que todos MVDs na CU são zero), a resolução MV da amostra de luma em um quarto é usada para a CU. Quando uma CU usar precisão MV da amostra de luma integral ou precisão MV de quatro amostras de luma, os MVPs na lista de candidato AMVP para a CU são arredondados para a correspondente precisão.
2.4.3 Previsão com compensação de movimento afim
[00102] Em HEVC, apenas modelo do movimento de translação é aplicado para previsão com compensação de movimento (MCP). Ao mesmo tempo, no mundo real, há muitos tipos de movimento, por exemplo, aproximação/afastamento, rotação, movimentos em perspectiva e os outros movimentos irregulares. Em VVC, uma previsão com compensação de movimento de transformação afim simplificada é aplicada com modelo afim de 4 parâmetros e modelo afim de 6 parâmetros. Da forma mostrada nas figuras 13A e 13B, o campo de movimento afim do bloco é descrito por dois vetores de movimento do ponto de controle (CPMVs) para o modelo afim de 4 parâmetros e 3 CPMVs para o modelo afim de 6 parâmetros, respectivamente.
[00103] O campo do vetor de movimento (MVF) de um bloco é descrito pelas seguintes equações com o modelo afim de 4 parâmetros (em que os 4 parâmetros são definidos como as variáveis a, b, e f) na equação (1) e o modelo afim de 6 parâmetros (em que os 4 parâmetros são definidos como as variáveis a, b, c, d, e f) na equação (2), respectivamente:  h ( mv1h − mv0h ) (mv1v − mv0v )  mv ( x, y ) = ax − by + e = w x− w y + mv0h  mv v ( x, y ) = bx + ay + f = (mv1 − mv0 ) x + (mv1 − mv0 ) y + mv v v v h h  w w 0 (1)  h (mv1h − mv0h ) (mv2h − mv0h )  mv ( x, y ) = ax + cy + e = x+ y + mv0h w h  mvv ( x, y) = bx + dy + f = (mv1 − mv0 ) x + (mv2 − mv0 ) y + mvv v v v v  w h 0 (2) em que (mvh0, mvh0) é vetor de movimento do ponto de controle no canto de topo-à esquerda, e (mvh1, mvh1) é vetor de movimento do
27 / 109 ponto de controle no canto de topo-à direita e (mvh2, mvh2) é vetor de movimento do ponto de controle no canto de base-à esquerda, todos os três vetores de movimento são chamados vetores de movimento do ponto de controle (CPMV), (x, y) representa a coordenada de um ponto representativo em relação à amostra de topo-à esquerda no bloco atual e (mvh(x,y), mvv(x,y)) é o vetor de movimento derivado para uma amostra localizada em (x, y). Os vetores de movimento CP podem ser sinalizados (como no modo AMVP afim) ou derivados em tempo real (como no modo de mescla afim). 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 à esquerda-de-topo de um sub- bloco em relação à amostra de topo-à esquerda no bloco atual for (xs, ys), a coordenada do ponto representativo é definida como (xs+2, ys+2). Para cada sub-bloco (isto é, 4x4 em VTM), o ponto representativo é utilizado para derivar o vetor de movimento para a íntegra do sub-bloco.
[00104] A fim de simplificar adicionalmente a previsão com compensação de movimento, a previsão de transformação afim com base em sub-bloco é aplicada. Para derivar o vetor de movimento de cada sub-bloco M x N (tanto M quanto N são ajustados em 4 no atual VVC), o vetor de movimento da amostra do centro de cada sub-bloco, da forma mostrada na figura 14, é calculado de acordo com as Equações (1) e (2), e arredondado para a precisão de fração 1/16. Então, os filtros de interpolação com compensação de movimento para 1/16-pel são aplicados para gerar a previsã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.
[00105] Depois de MCP, o vetor de movimento de alta precisão de cada sub-bloco é arredondado e salvo como a mesma precisão do vetor de movimento normal.
28 / 109
2.4.3.1. Sinalização de previsão afim
[00106] Similar ao modelo de movimento translacional, também há dois modos para sinalização da informação complementar devido à previsão afim. Os mesmos são modos AFINNE_INTER e AFINNE_MERGE.
2.4.3.2. Modo AF_INTER
[00107] Para CUs com tanto largura quanto altura maiores do que 8, o modo AF_INTER pode ser aplicado. Um indicador de afim em nível de CU é sinalizado no fluxo contínuo de bits para indicar se o modo AF_INTER é usado.
[00108] Neste modo, para cada lista da figura de referência (Lista 0 ou Lista 1), uma lista de candidato AMVP afim é construída com três tipos de previsores de movimento afim na seguinte ordem, em que cada candidato inclui os CPMVs estimados do bloco atual. As diferenças dos melhores CPMVs verificados no lado do codificador (tais como na figura 17) e os CPMVs estimados são sinalizadas. Além do mais, o índice do candidato AMVP afim a partir do qual os CPMVs estimados são derivados é adicionalmente sinalizado. 1) Previsores de movimento afim herdados
[00109] A ordem de verificação é similar àquela de MVPs espaciais na construção da lista HEVC AMVP. Primeiro, um previsor de movimento afim herdado esquerdo é derivado a partir do primeiro bloco em {A1, A0}, que é codificado afim e tem a mesma figura de referência do bloco atual. Segundo, um previsor de movimento afim herdado acima é derivado a partir do primeiro bloco em {B1, B0, B2} que é codificado afim e tem a mesma figura de referência do bloco atual. Os cinco blocos A1, A0, B1, B0, B2 são representados na figura 16.
[00110] Uma vez que um bloco vizinho for verificado como codificado com o modo afim, os CPMVs da unidade de codificação que cobre o bloco vizinho são usados para derivar previsores de CPMVs de bloco atual. Por
29 / 109 exemplo, se A1 for codificado com modo não afim e A0 for codificado com modo afim de 4 parâmetros, o previsor MV afim herdado esquerdo será derivado a partir de A0. Neste caso, os CPMVs de uma CU que cobre A0, denotados por para o CPMV de topo-à esquerda e para o CPMV de topo-à direita na figura 18B são utilizados para derivar os CPMVs estimados do bloco atual, denotados por , para as posições de topo-à esquerda (com coordenada (x0, y0)), de topo-à direita (com coordenada (x1, y1)) e de base-à direita (com coordenada (x2, y2)) do bloco atual. 2) Previsores de movimento afim construídos
[00111] Um previsor de movimento afim construído consiste em vetores de movimento do ponto de controle (CPMVs) que são derivados a partir de blocos intercodificados vizinhos, da forma mostrada na figura 17, que têm a mesma figura de referência. Se o modelo de movimento afim atual for afim de 4 parâmetros, o número de CPMVs é 2, caso contrário, se o modelo de movimento afim atual for afim de 6 parâmetros, o número de CPMVs é 3. O CPMV de topo-à esquerda é derivado pelo MV no primeiro bloco no grupo {A, B, C} que é intercodificado e tem a mesma figura de referência do bloco atual. O CPMV de topo-à direita é derivado pelo MV no primeiro bloco no grupo {D, E} que é intercodificado e tem a mesma figura de referência do bloco atual. O CPMV de base-à esquerda é derivado pelo MV no primeiro bloco no grupo {F, G} que é intercodificado e tem a mesma figura de referência do bloco atual.
[00112] - Se o modelo de movimento afim atual for afim de 4 parâmetros, então, um previsor de movimento afim construído é inserido na lista de candidato apenas se tanto quanto forem verificados, isto é, e são usados como os CPMVs estimados para posições de topo-à
30 / 109 esquerda (com coordenada (x0, y0)), de topo-à direita (com coordenada (x1, y1)) do bloco atual.
[00113] - Se o modelo de movimento afim atual for afim de 6 parâmetros, então, um previsor de movimento afim construído é inserido na lista de candidato apenas se , e forem, todos, verificados, isto é, , e são usados como os CPMVs estimados para posições de topo-à esquerda (com coordenada (x0, y0)), de topo-à direita (com coordenada (x1, y1)) e de base-à direita (com coordenada (x2, y2)) do bloco atual.
[00114] Nenhum processo de poda é aplicado durante a inserção de um previsor de movimento afim construído na lista de candidato. 3) Previsores de movimento AMVP normais
[00115] O seguinte se aplica até que o número de previsores de movimento afim alcance o máximo.
[00116] 1) Derivar um previsor de movimento afim pelo ajuste de todos os CPMVs iguais a se disponíveis.
[00117] 2) Derivar um previsor de movimento afim pelo ajuste de todos os CPMVs iguais a se disponíveis.
[00118] 3) Derivar um previsor de movimento afim pelo ajuste de todos os CPMVs iguais a se disponíveis.
[00119] 4) Derivar um previsor de movimento afim pelo ajuste de todos os CPMVs iguais a HEVC TMVP se disponíveis.
[00120] 5) Derivar um previsor de movimento afim pelo ajuste de todos os CPMVs em MV zero.
[00121] Note que já é derivado no previsor de movimento afim construído.
[00122] No modo AF_INTER, quando o modo afim de 4/6 parâmetros for usado, 2/3 pontos de controle são exigidos, e, portanto, 2/3 MVD precisam
31 / 109 ser codificados para estes pontos de controle, da forma mostrada na figura 15A. Em JVET-K0337, é proposto derivar o MV como segue, isto é, mvd1 e mvd2 são previstos a partir de mvd0.
[00123] Em que , mvdi e mv1 são o vetor de movimento previsto, a diferença do vetor de movimento e o vetor de movimento do pixel de topo-à esquerda (i = 0), do pixel de topo-à direita (i = 1) ou do pixel à esquerda-de base (i = 2), respectivamente, da forma mostrada na figura 15B. Favor notar que a adição de dois vetores de movimento (por exemplo, mvA(xA, yA) e mvB(xB, yB)) é igual à somatória de dois componentes separadamente, isto é, newMV = mvA + mvB e os dois componentes de newMV é ajustada em (xA + xB) e (yA + yB), respectivamente.
2.4.3.3. Modo AF_MERGE
[00124] Quando uma CU for aplicada no modo AF_MERGE, obtém-se o primeiro bloco codificado com modo afim a partir dos blocos reconstruídos vizinhos válidos. E a ordem de seleção para o bloco candidato é da esquerda, acima, acima à direita, esquerda na base até acima à esquerda, da forma mostrada na figura 18A (denotado por A, B, C, D, E em ordem). Por exemplo, se o bloco à esquerda na base vizinho for codificado em modo afim, da forma denotada por A0 na figura 18B, os vetores de movimento do Ponto de Controle (CP) mv0N, mv1N e mv2N do canto de topo à esquerda, canto acima à direita e canto à esquerda na base da CU/PU vizinha que contém o bloco A são buscados. E o vetor de movimento mv0C, mv1C e mv2C (que é apenas usado para o modelo afim de 6 parâmetros) do canto de topo à esquerda/topo à direita/base à esquerda na CU/PU atual é calculado com base em mv0N, mv1N e
32 / 109 mv2N. Deve-se notar que, em VTM-2.0, o sub-bloco (por exemplo, bloco 4 x 4 em VTM) localizado no canto de topo-à esquerda armazena mv0, o sub-bloco localizado no canto de topo-à direita armazena mv1 se o bloco atual for codificado afim. Se o bloco atual for codificado com o modelo afim de 6 parâmetros, o sub-bloco localizado no canto de base-à esquerda 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.
[00125] Depois que os CPMVs da CU atual mv0C, mv1C e mv2C forem derivados, de acordo com o modelo de movimento afim simplificado, Equação (1) e (2), o MVF da CU atual é gerado. A fim de identificar se a CU atual é codificada com modo AF_MERGE, um indicador de afim é sinalizado no fluxo contínuo de bits quando houver pelo menos um bloco vizinho a ser codificado no modo afim.
[00126] Em JVET-L0142 e JVET-L0632, uma lista de candidato de mescla afim é construída com as seguintes etapas: 1) Inserir candidatos afins herdados
[00127] Candidato afim herdado significa que o candidato é derivado a partir do modelo de movimento afim de seu bloco codificado afim vizinho válido. Os máximos dois candidatos afins herdados são derivados a partir do modelo de movimento afim dos blocos vizinhos e inseridos na lista de candidato. Para o previsor à esquerda, a ordem de escaneamento é {A0, A1}; para o previsor acima, a ordem de escaneamento é {B0, B1, B2}. 2) Inserir candidatos afins construídos
[00128] Se o número de candidatos na lista de candidato de mescla afim for menor do que MaxNumAffineCand (por exemplo, 5), candidatos afins construídos são inseridos na lista de candidato. Candidato afim construído significa que o candidato é construído pela combinação da informação de movimento vizinha de cada ponto de controle.
[00129] a) A informação de movimento para os pontos de controle é
33 / 109 derivada primeiramente a partir dos vizinhos espaciais e vizinho temporal 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 prever CPk (k=1, 2, 3); T é posição temporal para prever CP4.
[00130] As coordenadas de CP1, CP2, CP3 e CP4 é (0, 0), (W, 0), (H, 0) e (W, H), respectivamente, em que W e H são a largura e a altura do bloco atual.
[00131] A informação de movimento de cada ponto de controle é obtida de acordo com a seguinte ordem de prioridade: - Para CP1, a prioridade de verificação é B2->B3->A2. B2 é usado se o mesmo estiver disponível. Caso contrário, se B2 estiver indisponível, B3 é usado. Se tanto B2 quanto B3 estiverem indisponíveis, A2 é usado. Se todos os três candidatos estiverem indisponíveis, a informação de movimento de CP1 não pode ser obtida.
[00132] - Para CP2, a prioridade de verificação é B1->B0.
[00133] - Para CP3, a prioridade de verificação é A1->A0.
[00134] - Para CP4, T é usado.
[00135] b) Em segundo lugar, as combinações de pontos de controle são usadas para construir um candidato a mescla afim.
[00136] I. Informação de movimento de três pontos de controle é necessária para construir um candidato afim de 6 parâmetros. Os três pontos de controle podem ser selecionados a partir de uma das quatro combinações seguintes ({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}). Combinações {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4} serão convertidas para um modelo de movimento de 6 parâmetros representado por pontos de controle de topo-à esquerda, de topo-à direita e de base-à esquerda.
[00137] II. Informação de movimento de dois pontos de controle é necessária para construir um candidato afim de 4 parâmetros. Os dois pontos
34 / 109 de controle podem ser selecionados a partir de uma das duas combinações ({CP1, CP2}, {CP1, CP3}). As duas combinações serão convertidas para um modelo de movimento de 4 parâmetros representado pelos pontos de controle de topo-à esquerda e de topo-à direita.
[00138] III. As combinações de candidatos afins construídos são inseridas na lista de candidato como a seguinte ordem: {CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3} i. Para cada combinação, os índices de referência da lista X para cada CP são verificados, se os mesmos forem todos iguais, então, esta combinação tem CPMVs válidos para a lista X. Se a combinação não tiver CPMVs válidos tanto para a lista 0 quanto para a lista 1, então, esta combinação é marcada como inválida. Caso contrário, a mesma é válida, e os CPMVs são colocados na lista de mescla de sub-bloco.
[00139] 3) Preenchimento com vetores de movimento zero
[00140] Se o número de candidatos na lista de candidato de mescla afim for menor do que 5, vetores de movimento zero com índices de referência zero são inseridos na lista de candidato, até que a lista esteja completa.
[00141] Mais especificamente, para a lista de candidato de mescla do sub-bloco, um candidato a mescla de 4 parâmetros com MVs ajustados em (0, 0) e direção de previsão ajustada em uniprevisão a partir da lista 0 (para fatia P) e biprevisão (para fatia B).
2.4.4. Mescla com diferenças do vetor de movimento (MMVD)
[00142] Em JVET-L0054, expressão do vetor de movimento primordial (UMVE, também conhecido como MMVD) é apresentada. UMVE é usado para modos ignorar ou de mescla com um método de expressão do vetor de movimento proposto.
[00143] UMVE reusa candidato a mescla igual àqueles incluídos na
35 / 109 lista de candidato de mescla regular em VVC. Entre os candidatos a mescla, um candidato base pode ser selecionado, e é adicionalmente expandido pelo método de expressão do vetor de movimento proposto.
[00144] UMVE provê um inédito método de representação da diferença do vetor de movimento (MVD), em que um ponto inicial, uma magnitude de movimento e uma direção de movimento são usados para representar um MVD.
[00145] Esta técnica proposta usa uma lista de candidato de mescla como a mesma estiver. Mas, apenas candidatos que são tipo de mescla padrão (MRG_type_DEFAULT_N) são considerados para expansão de UMVE.
[00146] O índice de candidato base define o ponto inicial. O índice de candidato base indica o melhor candidato dentre os candidatos na lista, como segue. Tabela 1. IDX de candidato base IDX de candidato base 0 1 2 3 N-ésimo MVP 1º MVP 2º MVP 3º MVP 4º MVP
[00147] Se o número de candidatos bases for igual a 1, o IDX de candidato base não é sinalizado.
[00148] O índice de distância é a informação da magnitude de movimento. O índice de distância indica a distância predefinida a partir da informação de ponto inicial. A distância predefinida é como segue: Tabela 2. IDX da distância IDX da distância 0 1 2 3 4 5 6 7 Distância do 1/4-pel 1/2-pel 1-pel 2-pel 4-pel 8-pel 16-pel 32-pel pixel
[00149] Índice de direção representa a direção do MVD em relação ao ponto inicial. O índice de direção pode representar as quatro direções, da forma mostrada a seguir. Tabela 3. IDX de direção IDX de direção 00 01 10 11 eixo geométrico x + - N/D N/D eixo geométrico y N/D N/D + -
[00150] O indicador de UMVE é sinalizado exatamente depois de
36 / 109 enviar um indicador de ignorar ou indicador de mescla. Se o indicador de ignorar ou de mescla for verdadeiro, o indicador de UMVE é analisado. Se o indicador de UMVE for igual a 1, sintaxes UMVE são analisadas. Mas, se não 1, o indicador de afim é analisado. Se o indicador de afim for igual a 1, isto é modo afim, mas, se não 1, o índice de ignorar/mescla é analisado para o modo de ignorar/mescla de VTM.
[00151] O armazenamento temporário em linha adicional devido a candidatos a UMVE não é necessário. Em virtude de um ignorar/mescla, candidato de software é diretamente usado como um candidato base. Usando índice UMVE de entrada, o complemento de MV é decidido exatamente antes da compensação de movimento. Não há necessidade de manter longo armazenamento temporário em linha para isto.
[00152] Na atual condição de teste comum, ou o primeiro ou o segundo candidato a mescla na lista de candidato de mescla pode ser selecionado como o candidato base.
[00153] UMVE também é conhecido como Mescla com Diferenças MV (MMVD).
2.4.5. Refinamento do Vetor de Movimento no Lado do Decodificador (DMVR)
[00154] Na operação de biprevisão, para a previsão de uma região de bloco, dois blocos de previsã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 previsão. No método de refinamento do vetor de movimento no lado do decodificador (DMVR), os dois vetores de movimento da biprevisão são adicionalmente refinados.
[00155] No desenho JEM, os vetores de movimento são refinados por um processo de combinação de gabarito bilateral. A combinação de gabarito bilateral aplicada no decodificador para realizar uma busca com base em distorção entre um gabarito bilateral e as amostras de reconstrução nas figuras
37 / 109 de referência a fim de obter um MV refinado sem transmissão de informação de movimento adicional. Um exemplo é representado na figura 22. O gabarito bilateral é gerado como a combinação ponderada (isto é, média) dos dois blocos de previsão, a partir do MV0 inicial de list0 e MV1 de list1, respectivamente, da forma mostrada na figura 22. A operação de combinação de gabarito consiste no cálculo das medidas de custo entre o gabarito gerado e a região de amostra (ao redor do bloco de previsão inicial) na figura de referência. Para cada uma das duas figuras de referência, o MV que produz o mínimo custo de gabarito é considerado como o MV atualizado desta lista para substituir o original. No JEM, nove candidatos a MV são buscados para cada lista. Os nove candidatos a MV incluem o MV original e 8 MVs circundantes com um deslocamento de amostra de luma para o MV original na direção ou horizontal ou vertical, ou ambas. Finalmente, os dois novos MVs, isto é, MV0′ e MV1′, da forma mostrada na figura 22, são usados para gerar os resultados de biprevisão finais. Uma soma de diferenças absolutas (SAD) é usada como a medida de custo. Favor notar que, durante o cálculo do custo de um bloco de previsão gerado por um MV nas cercanias, o MV arredondado (para pel integral) é realmente usado para obter o bloco de previsão em vez do MV real.
[00156] Para simplificar adicionalmente o processo de DMVR, JVET- M0147 propôs diversas mudanças no desenho em JEM. Mais especificamente, o desenho de DMVR adotado para VTM-4.0 (a ser liberado em breve) tem as seguintes características principais: * Término precoce com SAD na posição (0,0) entre list0 e list1 * Tamanhos de bloco para DMVR W*H>=64 && H>=8 * Dividir a CU em múltiplos de sub-blocos 16 x 16 para DMVR de tamanho de CU > 16*16 * Tamanho de bloco de referência (W+7)*(H+7) (para luma)
38 / 109 * Busca de pel integral com base em SAD de 25 pontos (isto é, faixa de busca de refinamento (+-) 2, estágio único) * DMVR com base em interpolação bilinear * Espelhamento MVD entre list0 e list1 para permitir combinação bilateral * Refinamento sub-pel com base em “equação da superfície do erro paramétrico” * MC de luma/croma com preenchimento de bloco de referência (se necessário) * MVs refinados usados para MC e TMVPs apenas
2.4.6. Intra e interprevisão combinadas
[00157] Em JVET-L0100, previsão multi-hipóteses é proposta, em que intra e interprevisão combinadas é uma maneira de gerar múltiplas hipóteses.
[00158] Quando a previsão multi-hipóteses for aplicada para melhorar o modo intra, a previsão multi-hipóteses combina uma intraprevisão e uma previsão indexada em mescla. Em uma CU de mescla, um indicador é sinalizado para modo de mescla para selecionar um modo intra a partir de uma lista de candidato intra quando o indicador for verdadeiro. Para o componente de luma, a lista de candidato intra é derivada a partir de 4 modos de intraprevisão incluindo modos DC, plano, horizontal e vertical, e o tamanho da lista de candidato intra pode ser 3 ou 4, dependendo da forma do bloco. Quando a largura da CU for maior do que o dobro da altura da CU, o modo horizontal é exclusivo da lista do modo intra e quando a altura da CU for maior do que o dobro da largura da CU, o modo vertical é removido da lista do modo intra. Um modo de intraprevisão selecionado pelo índice do modo intra e uma previsão indexada em mescla selecionada pelo índice de mescla são combinados usando média ponderada. Para o componente de croma, DM é sempre aplicado sem sinalização extra. Os pesos para combinar previsões são descritos como segue. Quando o modo DC ou plano for
39 / 109 selecionado, ou a largura ou a altura do CB for menor do que 4, pesos iguais são aplicados. Para aqueles CBs com largura e altura de CB maiores do que ou iguais a 4, quando o modo horizontal/vertical for selecionado, um CB é, primeiro, verticalmente/horizontalmente dividido em quatro regiões de área igual. Cada peso ajustado, denotado como (w_intrai, w_interi), em que i é de 1 a 4 e (w_intra1, w_inter1) = (6, 2), (w_intra2, w_inter2) = (5, 3), (w_intra3, w_inter3) = (3, 5), e (w_intra4, w_inter4) = (2, 6), será aplicado em uma região correspondente. (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. Então, a previsão combinada pode ser calculada pela soma das duas previsões ponderadas e deslocamento à direita em 3 bits. Além do mais, o modo de intraprevisão para a hipótese intra de previsores pode ser salvo para referência das seguintes CUs vizinhas.
2.5 Remodelagem em laço (ILR) em JVET-M0427
[00159] A remodelagem em laço (ILR) também é conhecida como Mapeamento Luma com Escala de Croma (LMCS).
[00160] A ideia básica da remodelagem em laço (ILR) é converter o sinal original (no primeiro domínio) (sinal de previsão/reconstrução) em um segundo domínio (domínio remodelado).
[00161] O remodelador de luma em laço é implementado como um par de tabelas de consulta (LUTs), mas apenas uma das duas LUTs precisa ser sinalizada, já que a outra pode ser computada a partir da LUT sinalizada. Cada LUT é uma tabela de mapeamento de 1.024 entradas unidimensional de 10 bits (1D-LUT). Uma LUT é uma LUT direta, FwdLUT, que mapeia valores do código 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 .).
40 / 109
2.5.1 Modelo PWL
[00162] Conceitualmente, linear peça a peça (PWL) é implementado da seguinte maneira: Considere x1, x2 como dois pontos pivôs de entrada, e y1, y2 como seus correspondentes pontos pivôs de saída para uma peça. 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.
[00163] Na implementação de ponto fixo, a equação pode ser reescrita como: y = ((m * x + 2FP_PREC-1) >> FP_PREC) + c em que m é escalar, c é um deslocamento, e FP_PREC é um valor constante para especificar a precisão.
[00164] Note que, no software CE-12, o modelo PWL é usado para pré-computar as tabelas de mapeamento FwdLUT e InvLUT de 1.024 entradas; mas o modelo PWL também permite implementações para calcular valores de mapeamento idênticos em tempo real sem pré-computação das LUTs.
2.5.2. Teste CE12-2
2.5.2.1. Remodelagem de luma
[00165] O teste 2 da remodelagem de luma em laço (isto é, CE12-2 na proposta) provê uma canalização de complexidade inferior que também elimina a latência de decodificação para intraprevisão bloco a bloco na reconstrução interfatia. A intraprevisão é realizada no domínio remodelado para fatias tanto inter quanto intra.
[00166] A intraprevisão é sempre realizada no domínio remodelado, independente do tipo de fatia. Com tal arranjo, a intraprevisão pode iniciar imediatamente depois que a reconstrução de TU prévia for feita. Tal arranjo também pode prover um processo unificado para modo intra, em vez de ser
41 / 109 dependente de fatia. A figura 23 mostra o diagrama de blocos do processo de decodificação CE12-2 com base em modo.
[00167] CE12-2 também testa modelos lineares peça a peça (PWL) de 16 peças para escala de resíduo de luma e de croma em vez dos modelos PWL de 32 peças de CE12-1.
[00168] A reconstrução interfatia com remodelador de luma em laço em CE12-2 (blocos sombreados em verde claro indicam sinal no domínio remodelado: resíduo de luma; intra luma prevista; e intra luma reconstruída)
2.5.2.2. Escala do resíduo de croma dependente de luma
[00169] Escala do resíduo de croma dependente de luma é um processo multiplicativo implementado com operação integral de ponto fixo. A escala do resíduo de croma compensa a interação do sinal de luma com o sinal de croma. A escala do resíduo de croma é aplicada no nível da TU. Mais especificamente, o seguinte aplica-se: - para intra, a luma reconstruída é ponderada.
[00170] - Para inter, a luma de previsão é ponderada.
[00171] A média é usada para identificar um índice em um modelo PWL. O índice identifica um fator de escala cScaleInv. O resíduo de croma é multiplicado por este número.
[00172] Percebe-se que o fator de escala de croma é calculado a partir de valores de luma previstos diretamente mapeados, em vez de valores de luma reconstruídos.
2.5.2.3. Sinalização da informação complementar ILR
[00173] Os parâmetros são (atualmente) enviados no cabeçalho do grupo de quadriculado (similar a ALF). Os mesmos, relatadamente, tomam 40 a 100 bits.
[00174] As seguintes tabelas são com base na versão 9 de JVET- L1001. A sintaxe a ser adicionada é destacada a seguir em fonte sublinhada em negrito e itálico.
42 / 109
[00175] No parâmetro de sequência 7.3.2.1, a sintaxe RBSP pode ser ajustada como segue: seq_parameter_set_rbsp( ) { Descritor sps_seq_parameter_set_id ue(v) intra_only_constraint_flag u(1) max_BitDepth_constraint_idc u(4) max_chroma_format_constraint_idc u(2) frame_only_constraint_flag u(1) no_qtbtt_dual_tree_intra constraint_flag u(1) no_sao_constraint_flag u(1) no_alf_constraint_flag u(1) no_pcm_constraint_flag u(1) no_temporal_mvp_constraint_flag u(1) no_sbtmvp_constraint_flag u(1) no_amvr_constraint_flag u(1) no_cclm_constraint_flag u(1) no_afinne_motion_constraint_flag u(1) no_ladf_constraint_flag u(1) no_dep_quant_constraint_flag u(1) no_sign_data_hiding_constraint_flag u(1) chroma_format_idc ue(v) se( chroma_format_idc = = 3 ) separare_cor_plane_flag u(1) pic_width_in_luma_samples ue(v) pic_height_in_luma_samples ue(v) bit_depth_luma_minus8 ue(v) bit_depth_chroma_minus8 ue(v) log2_max_pic_order_cnt_lsb_minus4 ue(v) qtbtt_dual_tree_intra_flag ue(v) log2_ctu_size_minus2 ue(v) log2_min_luma_coding_block_size_minus2 ue(v) partition_constraints_override_enabled_flag ue(v) sps_log2_diff_min_qt_min_cb_intra_tile_group_luma ue(v) sps_log2_diff_min_qt_min_cb_inter_tile_group ue(v) sps_max_mtt_hierarchy_depth_inter_tile_groups ue(v) sps_max_mtt_hierarchy_depth_intra_tile_groups_luma ue(v) se( sps_max_mtt_hierarchy_depth_intra_tile_groups_luma != 0 ) { sps_log2_diff_max_bt_min_qt_intra_tile_group_luma ue(v) sps_log2_diff_max_tt_min_qt_intra_tile_group_luma ue(v) } se( sps_max_mtt_hierarchy_depth_inter_tile_groups != 0 ) { sps_log2_diff_max_bt_min_qt_inter_tile_group ue(v) sps_log2_diff_max_tt_min_qt_inter_tile_group ue(v) } se( qtbtt_dual_tree_intra_flag ) { sps_log2_diff_min_qt_min_cb_intra_tile_group_chroma ue(v) sps_max_mtt_hierarchy_depth_intra_tile_groups_chroma ue(v) se ( sps_max_mtt_hierarchy_depth_intra_tile_groups_chroma != 0 ) { sps_log2_diff_max_bt_min_qt_intra_tile_group_chroma ue(v) sps_log2_diff_max_tt_min_qt_intra_tile_group_chroma ue(v) } } sps_sao_enabled_flag u(1) sps_alf_enabled_flag u(1) pcm_enabled_flag u(1) se( pcm_enabled_flag ) { pcm_sample_bit_depth_luma_minus1 u(4)
43 / 109 pcm_sample_bit_depth_chroma_minus1 u(4) log2_min_pcm_luma_coding_block_size_minus3 ue(v) log2_diff_max_min_pcm_luma_coding_block_size ue(v) pcm_loop_filter_disabled_flag u(1) } sps_ref_wraparound_enabled_flag u(1) se( sps_ref_wraparound_enabled_flag ) sps_ref_wraparound_offset ue(v) sps_temporal_mvp_enabled_flag u(1) se( sps_temporal_mvp_enabled_flag ) sps_sbtmvp_enabled_flag u(1) sps_amvr_enabled_flag u(1) sps_bdof_enabled_flag u(1) sps_cclm_enabled_flag u(1) sps_mts_intra_enabled_flag u(1) sps_mts_inter_enabled_flag u(1) sps_afinne_enabled_flag u(1) se( sps_afinne_enabled_flag ) sps_afinne_type_flag u(1) sps_gbi_enabled_flag u(1) sps_cpr_enabled_flag u(1) sps_ciip_enabled_flag u(1) sps_triangle_enabled_flag u(1) sps_ladf_enabled_flag u(1) se ( sps_ladf_enabled_flag ) { sps_num_ladf_intervals_minus2 u(2) sps_ladf_lowest_interval_qp_offset se(v) para( 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( ) }
[00176] Em 7.3.3.1, a sintaxe do cabeçalho do grupo de quadriculado geral pode ser modificada pela inserção do texto sublinhado em negrito e itálico, como segue: tile_group_header( ) { Descritor tile_group_pic_parameter_set_id ue(v) se( NumTilesInPic > 1 ) { tile_group_address u(v) num_tiles_in_tile_group_minus1 ue(v) } tile_group_type ue(v) tile_group_pic_order_cnt_lsb u(v) se( partition_constraints_override_enabled_flag ) { partition_constraints_override_flag ue(v) se( partition_constraints_override_flag ) { tile_group_log2_diff_min_qt_min_cb_luma ue(v) tile_group_max_mtt_hierarchy_depth_luma ue(v) se( tile_group_max_mtt_hierarchy_depth_luma != 0 ) tile_group_log2_diff_max_bt_min_qt_luma ue(v) tile_group_log2_diff_max_tt_min_qt_luma ue(v) } se( tile_group_type = = I && qtbtt_dual_tree_intra_flag ) {
44 / 109 tile_group_log2_diff_min_qt_min_cb_chroma ue(v) tile_group_max_mtt_hierarchy_depth_chroma ue(v) se( tile_group_max_mtt_hierarchy_depth_chroma != 0 ) tile_group_log2_diff_max_bt_min_qt_chroma ue(v) tile_group_log2_diff_max_tt_min_qt_chroma ue(v) } } } } se ( tile_group_type != I ) { se( sps_temporal_mvp_enabled_flag ) tile_group_temporal_mvp_enabled_flag u(1) se( tile_group_type = = B ) mvd_l1_zero_flag u(1) se( tile_group_temporal_mvp_enabled_flag ) { se( tile_group_type = = B ) collocated_from_l0_flag u(1) } six_minus_max_num_merge_cand ue(v) se( sps_afinne_enable_flag ) five_minus_max_num_subblock_merge_cand ue(v) } tile_group_qp_delta se(v) se( pps_tile_group_chroma_qp_offsets_present_flag ) { tile_group_cb_qp_offset se(v) tile_group_cr_qp_offset se(v) } se( sps_sao_enabled_flag ) { tile_group_sao_luma_flag u(1) se( ChromaArrayType != 0 ) tile_group_sao_chroma_flag u(1) } se( sps_alf_enabled_flag ) { tile_group_alf_enabled_flag u(1) se( tile_group_alf_enabled_flag ) alf_data( ) } se( tile_group_type = = P | | tile_group_type = = B ) { num_ref_idx_l0_active_minus1 ue(v) se( tile_group_type = = B ) num_ref_idx_l1_active_minus1 ue(v) } dep_quant_enabled_flag u(1) se( !dep_quant_enabled_flag ) sign_data_hiding_enabled_flag u(1) se( deblocking_filter_override_enabled_flag ) deblocking_filter_override_flag u(1) se( deblocking_filter_override_flag ) { tile_group_deblocking_filter_disabled_flag u(1) se( !tile_group_deblocking_filter_disabled_flag ) { tile_group_beta_offset_div2 se(v) tile_group_tc_offset_div2 se(v) } } se( num_tiles_in_tile_group_minus1 > 0 ) { offset_len_minus1 ue(v) para( i = 0; i < num_tiles_in_tile_group_minus1; i++ ) entry_point_offset_minus1[ i ] u(v) }
45 / 109 se ( sps_reshaper_enabled_flag ) { tile_group_reshaper_model_present_flag u(1) se ( tile_group_reshaper_model_present_flag ) tile_group_reshaper_model ( ) tile_group_reshaper_enable_flag u(1) se (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( ) }
[00177] Um inédito modelo remodelador do grupo de quadriculado da tabela de sintaxe pode ser adicionada como segue: 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) para (i = reshaper_model_min_bin_idx; i <= reshaper_model_max_bin_idx; i++ ) { reshape_model_bin_delta_abs_CW [ i ] u(v) se ( reshaper_model_bin_delta_abs_CW[ i ] ) > 0 ) reshaper_model_bin_delta_sign_CW_flag[ i ] u(1) } }
[00178] Na semântica RBSP do conjunto de parâmetro de sequência geral, a seguinte semântica pode ser adicionada: sps_reshaper_enabled_flag igual a 1 especifica que o remodelador é usado na sequência de vídeo codificada (CVS). sps_reshaper_enabled_flag igual a 0 especifica que o remodelador não é usado na CVS.
[00179] Na sintaxe do cabeçalho do grupo de quadriculado, a seguinte semântica pode ser adicionada: tile_group_reshaper_model_present_flag igual a 1 especifica que tile_group_reshaper_model() está presente no cabeçalho do grupo de quadriculado. 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 quadriculado. Quando tile_group_reshaper_model_present_flag não estiver presente, é inferido que seja igual a 0.
[00180] tile_group_reshaper_enabled_flag igual a 1 especifica que o remodelador é habilitado para o atual grupo de quadriculado. tile_group_reshaper_enabled_flag igual a 0 especifica que o remodelador não
46 / 109 é habilitado para o atual grupo de quadriculado. Quando tile_group_reshaper_enable_flag não estiver presente, é inferido que seja igual a 0.
[00181] tile_group_reshaper_chroma_residual_scale_flag igual a 1 especifica que a escala residual de croma é habilitada para o atual grupo de quadriculado. tile_group_reshaper_chroma_residual_scale_flag igual a 0 especifica que a escala residual de croma não é habilitada para o atual grupo de quadriculado. Quando tile_group_reshaper_chroma_residual_scale_flag não estiver presente, é inferido que seja igual a 0.
[00182] A sintaxe tile_group_reshaper_model( ) pode ser adicionada como segue: reshape_model_min_bin_idx especifica o mínimo índice de bin (ou peça) a ser usado no processo de construção do remodelador. 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.
[00183] reshape_model_delta_max_bin_idx especifica o máximo índice de bin (ou peça) permitido MaxBinIdx menos o máximo índice de bin a ser usado no processo de construção do remodelador. O valor de reshape_model_max_bin_idx é ajustado igual a MaxBinIdx - reshape_model_delta_max_bin_idx.
[00184] 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 ].
[00185] reshape_model_bin_delta_abs_CW[ i ] especifica o valor de palavra código delta absoluto para o i-ésimo bin.
[00186] reshaper_model_bin_delta_sign_CW_flag[ i ] especifica o sinal de reshape_model_bin_delta_abs_CW[ i ] como segue: - Se reshape_model_bin_delta_sign_CW_flag[ i ] for igual a 0, a correspondente variável RspDeltaCW[ i ] é um valor positivo.
47 / 109
[00187] - Caso contrário (reshape_model_bin_delta_sign_CW_flag[ i ] não é igual a 0), a correspondente variável RspDeltaCW[ i ] é um valor negativo.
[00188] Quando reshape_model_bin_delta_sign_CW_flag[ i ] não estiver presente, é inferido que seja igual a 0.
[00189] A variável RspDeltaCW[ i ] = (1 2*reshape_model_bin_delta_sign_CW [ i ]) * reshape_model_bin_delta_abs_CW [ i ]; A variável RspCW[ i ] é derivada como as seguintes etapas: A variável OrgCW é ajustada igual a (1 << BitDepthY ) / ( MaxBinIdx + 1).
[00190] - Se reshaper_model_min_bin_idx < = i <= reshaper_model_max_bin_idx RspCW[ i ] = OrgCW + RspDeltaCW[ i ].
[00191] - Caso contrário, RspCW[ i ] = 0.
[00192] O valor de RspCW [ i ] deve estar na faixa de 32 a 2 * OrgCW - 1 se o valor de BitDepthY for igual a 10.
[00193] As variáveis InputPivot[ i ] com i na faixa de 0 a MaxBinIdx + 1, inclusive, são derivados como segue InputPivot[ i ] = i * OrgCW
[00194] 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 derivadas como segue: shiftY = 14 ReshapePivot[ 0 ] = 0; para( i = 0; i <= MaxBinIdx ; i++) { ReshapePivot[ i + 1 ] = ReshapePivot[ i ] + RspCW[ i ] ScaleCoef[ i ] = ( RspCW[ i ] * (1 << shiftY) + (1 << (Log2(OrgCW) - 1))) >> (Log2(OrgCW)) se ( RspCW[ i ] == 0 )
48 / 109 InvScaleCoeff[ i ] = 0 se não InvScaleCoeff[ i ] = OrgCW * (1 << shiftY) / RspCW[ i ] }
[00195] A variável ChromaScaleCoef[ i ] com i na faixa de 0 a MaxBinIdx, inclusive, pode ser derivada como segue: 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]
[00196] O seguinte texto pode ser adicionado em conexão com processo de previsão de amostra ponderada para mescla e intraprevisão combinadas. A adição é marcada em fonte em negrito e itálico.
8.4.6.6 Processo de previsão de amostra ponderada para mescla e intraprevisão combinadas
[00197] As entradas neste processo são: - a largura do atual bloco de codificação cbWidth, - a altura do atual bloco de codificação cbHeight, - dois (cbWidth)x(cbHeight) arranjos predSamplesInter e predSamplesIntra, - o modo de intraprevisão predModeIntra,
49 / 109 - uma variável cIdx que especifica o índice do componente de cor.
[00198] A saída deste processo é o arranjo (cbWidth)x(cbHeight) predSamplesComb de valores de amostra de previsão.
[00199] A variável BitDepth é derivada como segue: - Se cIdx for igual a 0, BitDepth é ajustado igual a BitDepthY.
[00200] - Caso contrário, BitDepth é ajustado igual a BitDepthC.
[00201] As amostras de previsão predSamplesComb[ x ][ y ] com x = 0..cbWidth − 1 e y = 0..cbHeight − 1 são derivadas como segue: - O peso w é derivado como segue: - Se predModeIntra for INTRA_ANGULAR50, w é especificado na Tabela 4 com nPos igual a y e nSize igual a cbHeight.
[00202] - Caso contrário, se predModeIntra for INTRA_ANGULAR18, w é especificado na Tabela 8-10 com nPos igual a x e nSize igual a cbWidth.
[00203] - Caso contrário, w é ajustado igual a 4.
[00204] - Se cIdx for igual a 0, predSamplesInter é derivado como segue: - Se tile_group_reshaper_enabled_flag for igual a 1, shiftY = 14 idxY = predSamplesInter[ x ][ y ] >> Log2( OrgCW ) predSamplesInter [ x ][ y ] = Clip1Y ( ReshapePivot[ idxY ] +( ScaleCoeff[ idxY ] *( predSamplesInter[ x ][ y ] - InputPivot[ idxY ] ) + ( 1 << ( shiftY - 1 ) ) ) >> shiftY ) (8-xxx) - Caso contrário ( tile_group_reshaper_enabled_flag é igual a0) predSamplesInter [ x ][ y ] = predSamplesInter [ x ][ y ] - As amostras de previsão predSamplesComb[ x ][ y ] são derivadas como segue: predSamplesComb[ x ][ y ] =
50 / 109 ( w * predSamplesIntra[ x ][ y ] + (8-740) ( 8 − w ) * predSamplesInter[ x ][ y ] ) >> 3 ) Tabela 4 - Especificação de w em função da posição nP e do tamanho nS 0 <= nP < ( nS / 4 ) ( nS / 4 ) <= nP < ( nS / ( nS / 2 ) <= nP < ( 3 *n ( 3 *nS / 4 ) <= nP < nS 2) S/4) 6 5 3 2
[00205] O seguinte texto mostrado na fonte sublinhada em negrito e itálico pode ser adicionado no processo de reconstrução da figura:
8.5.5 Processo de reconstrução da figura
[00206] As entradas neste processo são: - um local ( xCurr, yCurr ) que especifica a amostra de topo-à esquerda do bloco atual em relação à amostra de topo-à esquerda do componente da figura atual, - as variáveis nCurrSw e nCurrSh que especificam a largura e a altura, respectivamente, do bloco atual, - uma variável cIdx que especifica o componente de cor do bloco atual, - um arranjo (nCurrSw)x(nCurrSh) predSamples que especifica as amostras previstas do bloco atual, - um arranjo (nCurrSw)x(nCurrSh) resSamples que especifica as amostras residuais do bloco atual.
[00207] Dependendo do valor do componente de cor cIdx, as seguintes atribuições são feitas: - Se cIdx for igual a 0, recSamples corresponde ao arranjo de amostra da figura reconstruído SL e a função clipCidx1 corresponde a Clip1Y.
[00208] - Caso contrário, se cIdx for igual a 1, recSamples corresponde ao arranjo de amostra de croma reconstruído SCb e a função clipCidx1 corresponde a Clip1C.
[00209] - Caso contrário (cIdx é igual a 2), recSamples corresponde ao arranjo de amostra de croma reconstruído SCr e a função clipCidx1 corresponde a Clip1C.
51 / 109
[00210] Quando o valor de tile_group_reshaper_enabled_flag for igual a 1, o bloco (nCurrSw)x(nCurrSh) do arranjo de amostra reconstruído recSamples no local ( xCurr, yCurr ) é derivado como o processo de mapeamento especificado na cláusula 8.5.5.1. Caso contrário, o bloco (nCurrSw)x(nCurrSh) do arranjo de amostra reconstruído recSamples no local ( xCurr, yCurr ) é derivado como segue: recSamples[ xCurr + i ][ yCurr + j ] = clipCidx1( predSamples[ i ][ j ] + resSamples[ i ][ j ] ) (8-xxx) com i = 0..nCurrSw − 1, j = 0..nCurrSh - 1
8.5.5.1 Reconstrução da figura com processo de mapeamento
[00211] Esta cláusula especifica a reconstrução da figura com processo de mapeamento. A reconstrução da figura com processo de mapeamento para o valor da amostra de luma é especificada em 8.5.5.1.1. A reconstrução da figura com processo de mapeamento para o valor de amostra de croma é especificado em 8.5.5.1.2.
8.5.5.1.1 Reconstrução da figura com processo de mapeamento para valor da amostra de luma
[00212] As entradas neste processo são: - um arranjo (nCurrSw)x(nCurrSh) predSamples que especifica as amostras previstas de luma do bloco atual, - um arranjo (nCurrSw)x(nCurrSh) resSamples que especifica as amostras residuais de luma do bloco atual.
[00213] As saídas para este processo são: - um arranjo da amostra de previsão de luma mapeado (nCurrSw)x(nCurrSh) predMapSamples, - um arranjo da amostra de luma reconstruído (nCurrSw)x(nCurrSh) recSamples.
[00214] O predMapSamples é derivado como segue:
52 / 109 - Se ( CuPredMode[ xCurr ][ yCurr ] = = MODE_INTRA ) || ( CuPredMode[ xCurr ][ yCurr ] == MODE_CPR) || ( CuPredMode[ xCurr ][ yCurr ] == MODE_INTER && mh_intra_flag[ xCurr ][ yCurr ] ) predMapSamples[ xCurr + i ][ yCurr + j ] = predSamples[ i ][ j ] (8-xxx) com i = 0..nCurrSw − 1, j = 0..nCurrSh - 1 - Caso contrário ( ( CuPredMode[ xCurr ][ yCurr ] = = MODE_INTER && !mh_intra_flag[ xCurr ][ yCurr ] )), o seguinte aplica- se: shiftY = 14 idxY = predSamples[ i ][ j ] >> Log2( OrgCW ) predMapSamples[ xCurr + i ][ yCurr + j ] = ReshapePivot[ idxY ] +( ScaleCoeff[ idxY ] *(predSamples[ i ][ j ] - InputPivot[ idxY ] ) + ( 1 << ( shiftY - 1 ) ) ) >> shiftY (8-xxx) com i = 0..nCurrSw − 1, j = 0..nCurrSh - 1
[00215] O recSamples é derivado como segue: recSamples[ xCurr + i ][ yCurr + j ] = Clip1Y ( predMapSamples[ xCurr + i ][ yCurr + j ]+ resSamples[ i ][ j ] ] ) (8-xxx) com i = 0..nCurrSw − 1, j = 0..nCurrSh - 1
8.5.5.1.2 Reconstrução da figura com processo de mapeamento para valor de amostra de croma
[00216] As entradas neste processo são: - um arranjo (nCurrSwx2)x(nCurrShx2) mapeado predMapSamples que especifica as amostras previstas de luma mapeadas do bloco atual, - um arranjo (nCurrSw)x(nCurrSh) predSamples que especifica as amostras previstas de croma do bloco atual,
53 / 109 - um arranjo (nCurrSw)x(nCurrSh) resSamples que especifica as amostras residuais de croma do bloco atual.
[00217] A saída para este processo é o arranjo de amostra de croma reconstruído recSamples.
[00218] O recSamples é derivado como segue: - Se ( !tile_group_reshaper_chroma_residual_scale_flag || ( (nCurrSw)x(nCurrSh) <= 4) ) recSamples[ xCurr + i ][ yCurr + j ] = Clip1C predSamples[ i ][ j ] + resSamples[ i ][ j ] ) (8-xxx) com i = 0..nCurrSw − 1, j = 0..nCurrSh - 1 - Caso contrário (tile_group_reshaper_chroma_residual_scale_flag && ((nCurrSw)x(nCurrSh) > 4)), o seguinte aplica-se: A variável varScale é derivada como segue:
1. invAvgLuma = Clip1Y( ( ∑i ∑j predMapSamples[ (xCurr << 1 ) + i ][ (yCurr << 1) + j ] + nCurrSw * nCurrSh *2) / ( nCurrSw * nCurrSh *4 ) )
2. A variável idxYInv é derivada por involução da identificação do índice de função peça a peça, da forma especificada na cláusula 8.5.6.2 com a entrada do valor de amostra invAvgLuma
3. varScale = ChromaScaleCoef[ idxYInv ] O recSamples é derivado como segue: - Se tu_cbf_cIdx [ xCurr ][ yCurr ] igual a 1, o seguinte aplica-se: shiftC = 11 recSamples[ xCurr + i ][ yCurr + j ] = ClipCidx1 ( predSamples[ i ][ j ] + Sign( resSamples[ i ][ j ] ) * ( ( Abs( resSamples[ i ][ j ] ) * varScale + ( 1 << ( shiftC - 1 ) ) ) >> shiftC ) ) (8-xxx) com i = 0..nCurrSw − 1, j = 0..nCurrSh - 1 - Caso contrário (tu_cbf_cIdx[ xCurr ][ yCurr ] igual a 0)
54 / 109 recSamples[ xCurr + i ][ yCurr + j ] = ClipCidx1(predSamples[i][j]) (8-xxx) com i = 0..nCurrSw − 1, j = 0..nCurrSh - 1
8.5.6 Processo de mapeamento inverso da figura
[00219] Esta cláusula é invocada quando o valor de tile_group_reshaper_enabled_flag for igual a 1. A entrada é arranjo de amostra de luma da figura reconstruído SL e a saída é arranjo de amostra de luma da figura reconstruído modificado S′L depois do processo de mapeamento inverso.
[00220] O processo de mapeamento inverso para o valor da amostra de luma é especificado em 8.4.6.1.
8.5.6.1 Processo de mapeamento inverso da figura dos valores da amostra de luma
[00221] As entradas neste processo compreendem um local de luma ( xP, yP ) que especifica o local da amostra de luma em relação à amostra de luma de topo-à esquerda da figura atual.
[00222] As saídas deste processo compreendem um valor da amostra de luma mapeado inverso invLumaSample.
[00223] O valor de invLumaSample é derivado pela aplicação das seguintes etapas ordenadas:
1. A variável idxYInv é derivada pela invocação da identificação de índice de função peça a peça, da forma especificada na cláusula 8.5.6.2, com a entrada de valor da amostra de luma SL[ xP ][ yP ].
[00224] 2. O valor de reshapeLumaSample é derivado como segue: shiftY = 14 invLumaSample = InputPivot[ idxYInv ] + ( InvScaleCoeff[ idxYInv ] *( SL[ xP ][ yP ] - ReshapePivot[ idxYInv ] ) + ( 1 << ( shiftY - 1 ) ) ) >> shiftY (8-xx)
3. clipRange = ((reshape_model_min_bin_idx > 0) && (reshape_model_max_bin_idx < MaxBinIdx)); - Se clipRange for igual a 1, o seguinte aplica-se:
55 / 109 minVal = 16 << (BitDepthY - 8) maxVal = 235<< (BitDepthY - 8) invLumaSample = Clip3(minVal, maxVal, invLumaSample) - se não (clipRange é igual a 0), invLumaSample = ClipCidx1(invLumaSample),
8.5.6.2 Identificação do índice de função peça a peça para componentes de luma
[00225] As entradas neste processo são um valor da amostra de luma S.
[00226] A saída deste processo é um índice idxS que identifica a peça à qual a amostra S pertence. A variável idxS é derivada como segue: para( idxS = 0, idxFound = 0; idxS <= MaxBinIdx; idxS++ ) { se( (S < ReshapePivot[ idxS + 1 ] ) { idxFound = 1 interromper } }
[00227] Note que uma implementação alternativa para verificar a identificação idxS é como segue: se (S < ReshapePivot[ reshape_model_min_bin_idx ]) idxS = 0 se não se (S >= ReshapePivot[ reshape_model_max_bin_idx ]) idxS = MaxBinIdx se não idxS = findIdx ( S, 0, MaxBinIdx + 1, ReshapePivot[ ] ) função idx = findIdx (val, low, high, Pivot[ ]) { se ( high - low <= 1 ) idx = low se não { mid = ( low + high) >> 1 se (val < pivot [mid] ) high = mid se não low = mid idx = findIdx (val, low, high, pivot[]) } }
56 / 109
2.5.2.4. Uso de ILR
[00228] No lado do codificador, cada figura (ou grupo de quadriculado) é primeiramente convertida para o domínio remodelado. E todo o processo de codificação é realizado no domínio remodelado. Para intraprevisão, o bloco vizinho fica no domínio remodelado; para interprevisão, os blocos de referência (gerados a partir do domínio original proveniente do armazenamento temporário da figura decodificada) são primeiramente convertidos para o domínio remodelado. Então, os resíduos são gerados e codificados para o fluxo contínuo de bits.
[00229] Depois que a íntegra da figura (ou grupo de quadriculado) finalizar a codificação / decodificação, amostras no domínio remodelado são convertidas para o domínio original, então, filtro de desbloqueio e outros filtros são aplicados.
[00230] Remodelagem direta para o sinal de previsão é desabilitada para os seguintes casos: - Bloco atual é intracodificado - Bloco atual é codificado como CPR (referência de figura atual, também conhecido como cópia intrabloco, IBC) - Bloco atual é codificado como modo inter-intra combinado (CIIP) e a remodelagem direta é desabilitada para o bloco de intraprevisão.
2.6. Unidades de Dados de Canalização Virtuais (VPDU)
[00231] As unidades de dados de canalização virtuais (VPDUs) são definidas como unidades de MxM-luma(L)/NxN-croma(C) não sobrepostas em uma figura. Em decodificadores em hardware, VPDUs sucessivas são processadas por múltiplos estágios de canalização ao mesmo tempo; diferentes estágios processam diferentes VPDUs simultaneamente. O tamanho da VPDU é grosseiramente proporcional a o tamanho do armazenamento temporário na maior dos estágios de canalização, portanto, diz-se que é muito importante manter o tamanho da VPDU pequeno. Em decodificadores em
57 / 109 hardware HEVC, o tamanho da VPDU é ajustado no máximo tamanho do bloco de transformação (TB). Ampliar o máximo tamanho do TB de 32x32- L/16x16-C (como em HEVC) para 64x64-L/32x32-C (como no atual VVC) pode trazer ganhos de codificação, o que resulta em 4X o tamanho da VPDU (64x64-L/32x32-C) de forma esperada em comparação com HEVC. Entretanto, além do particionamento da unidade de codificação (CU) em Árvore Quádrupla (QT), árvore ternária (TT) e árvore binária (BT) são adotadas em VVC para alcançar ganhos de codificação adicionais, e divisões de TT e BT podem ser aplicadas em blocos de árvore de codificação (CTUs) 128x128-L/64x64-C recursivamente, o que diz-se que leva a 16X o tamanho da VPDU (128x128-L/64x64-C) em comparação com HEVC.
[00232] No atual desenho de VVC, o tamanho da VPDU é definido como 64x64-L/32x32-C.
2.7. APS
[00233] Um Conjunto do Parâmetro de Adaptação (APS) é adotado em VVC para conduzir parâmetros ALF. O cabeçalho do grupo de quadriculado contém um aps_id que fica condicionalmente presente quando ALF for habilitado. O APS contém um aps_id e os parâmetros ALF. Um novo valor de NUT (tipo de unidade NAL, como em AVC e HEVC) é atribuído para APS (proveniente de JVET-M0132). Para as condições de teste comuns em VTM-
4.0 (para aparecer), é sugerido somente usar aps_id = 0 e enviar o APS com cada figura. Para agora, a faixa de valores de APS ID será 0..31 e APSs podem ser compartilhados através das figuras (e podem ser diferentes em diferentes grupos de quadriculado em uma figura). O valor do ID deve ser comprimento fixo codificado quando presente. Os valores de ID não podem ser reusados com conteúdo diferente na mesma figura.
2.8. Filtros de pós-reconstrução
2.8.1 Filtro de difusão (DF)
[00234] Em JVET-L0157, o filtro de difusão é proposto, em que o sinal
58 / 109 de intra/inter previsão da CU pode ser adicionalmente modificado por filtros de difusão.
2.8.1.1. Filtro de Difusão Uniforme
[00235] O Filtro de Difusão Uniforme é realizado por convolução o sinal de previsão com uma máscara fixa que é dada ou como ou como , definidos a seguir.
[00236] Além do próprio sinal de previsão, uma linha de amostras reconstruídas à esquerda e acima do bloco é usada como uma entrada para o sinal filtrado, em que o uso destas amostras reconstruídas pode ser evitado nos blocos inter.
[00237] Considere como o sinal de previsão em um dado bloco obtido por previsão intra ou com movimento compensado. A fim de tratar os pontos de contorno para os filtros, o sinal de previsão precisa ser estendido para um sinal de previsão . Esta previsão estendida pode ser formada de duas maneiras: Ou, como uma etapa intermediária, uma linha de amostras reconstruídas à esquerda e acima do bloco é adicionada no sinal de previsão e, então, o sinal resultante é espelhado em todas as direções. Ou apenas o próprio sinal de previsão é espelhado em todas as direções. A última extensão é usada para blocos inter. Neste caso, apenas o próprio sinal de previsão compreende a entrada para o sinal de previsão estendido .
[00238] Se o filtro precisar ser usado, é proposto substituir o sinal de previsão por usando a supramencionada extensão do contorno. Aqui, a máscara do filtro é dada como
59 / 109
[00239] Se o filtro precisar ser usado, é proposto substituir o sinal de previsão por .
[00240] Aqui, o filtro é dado como
2.8.1.2. Filtro de Difusão Direcional
[00241] Em vez de usar filtros de difusão adaptativos de sinal, são usados filtros direcionais, um filtro horizontal e um filtro vertical , que ainda têm uma máscara fixa. Mais precisamente, a filtragem de difusão uniforme correspondente à máscara da seção prévia é simplesmente restrita a ser aplicada apenas ou ao longo da direção vertical ou ao longo da direção horizontal. O filtro vertical é realizado pela aplicação da máscara do filtro fixa no sinal de previsão e o filtro horizontal é realizado pelo uso da máscara transposta
2.8.2. Filtro bilateral (BF)
60 / 109
[00242] O filtro bilateral é proposto em JVET-L0406, e o mesmo é sempre aplicado em blocos de luma com coeficientes de transformação não zero e parâmetro de quantização de fatia maior do que 17. Portanto, não há necessidade de sinalizar o uso do filtro bilateral. O filtro bilateral, se aplicado, é realizado em amostras decodificadas exatamente depois da transformação inversa. Além do mais, os parâmetros de filtro, isto é, pesos são explicitamente derivados a partir da informação codificada.
[00243] O processo de filtragem é definido como: (1) em que é a intensidade da amostra atual e é a intensidade modificada da amostra atual, 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) é representado na figura 24.
[00244] Mais especificamente, o peso associado com a k-ésima amostra vizinha é definido como segue: (2) em que (3) e é dependente do modo codificado e dos tamanhos do bloco de codificação. O processo de filtragem descrito é aplicado em blocos intracodificados, e blocos intercodificados quando TU for adicionalmente dividida, para habilitar processamento em paralelo.
[00245] Para melhor capturar as propriedades estatísticas do sinal de
61 / 109 vídeo, e melhorar o desempenho do filtro, funções de peso resultadas a partir da Equação (2) estão sendo ajustadas pelo parâmetro , tabuladas na Tabela 5 como sendo dependentes do modo de codificação e dos parâmetros de particionamento de bloco (tamanho mínimo). Tabela 5 Valor de para diferentes tamanhos de bloco e codificação modos Min (largura do bloco, altura do Modo intra Modo inter bloco) 4 82 62 8 72 52 Outro 52 32
[00246] Para melhorar adicionalmente o desempenho da codificação, para blocos intercodificados quando a TU não for dividida, a diferença da intensidade entre a amostra atual e uma de suas amostras vizinhas é substituída por uma representativa diferença da intensidade entre duas janelas que cobrem a amostra atual e a amostra vizinha. Portanto, a equação do processo de filtragem é revisada para: (4) em que e representam o m-ésimo valor de amostra nas janelas centralizadas em e , respectivamente. Nesta proposta, o tamanho de janela é ajustado em 3 x 3. Um exemplo das duas janelas que cobrem e é representado na figura 25.
2.8.3. Filtro do domínio de transformação de Hadamard (HF)
[00247] Em JVET-K0068, o filtro em laço no domínio de transformação de Hadamard 1D que é aplicado no nível de CU depois da reconstrução e tem implementação livre de multiplicação. O filtro proposto é aplicado para todos os blocos da CU que satisfazem a condição predefinida e os parâmetros de filtro são derivados a partir da informação codificada.
[00248] A filtragem proposta é sempre aplicada em blocos de luma reconstruídos com coeficientes de transformação não zero, excluindo os blocos 4 x 4 e se o parâmetro de quantização de fatia for maior do que 17. Os
62 / 109 parâmetros de filtro são explicitamente derivados a partir da informação codificada. O filtro proposto, se aplicado, é realizado em amostras decodificadas exatamente depois da transformação inversa.
[00249] Para cada pixel proveniente do bloco reconstruído, o processamento de pixel compreende as seguintes etapas: * Escanear 4 pixels vizinhos ao redor do pixel de processamento, incluindo o atual de acordo com o padrão de escaneamento * Transformação de Hadamard de 4 pontos dos pixels lidos * Filtragem de espectro com base na seguinte fórmula: em que (i) é o componente do índice de espectro no espectro de Hadamard, R(i) é componente de espectro dos pixels reconstruídos correspondentes ao índice, σ é o parâmetro de filtragem que deriva a partir do parâmetro de quantização QP de codec usando a seguinte equação:
[00250] O exemplo do padrão de escaneamento é representado na figura 26.
[00251] Para os pixels que ficam no contorno da CU, o padrão de escaneamento é ajustado garantindo que todos os pixels exigidos estejam na atual CU.
3. Desvantagens das implementações existentes
[00252] O atual desenho de ILR pode ter os seguintes problemas:
1. É possível que a informação de modelo de remodelagem nunca tenha sido sinalizada na sequência, mas tile_group_reshaper_enable_flag é ajustado igual a 1 na fatia atual (ou grupo de quadriculado).
[00253] 2. O modelo de remodelagem armazenado pode vir a partir de
63 / 109 uma fatia (ou grupo de quadriculado) que não pode ser usado como uma referência.
[00254] 3. Uma figura pode ser dividida em diversas fatias (ou grupos de quadriculado), e cada fatia (ou grupo de quadriculado) pode sinalizar a informação de modelo de remodelagem.
[00255] 4. Alguns valores e faixas (tal como a faixa de RspCW [i]) são apenas definidos quando a profundidade de bit for igual a 10.
[00256] 5. reshape_model_delta_max_bin_idx não é bem restrito.
[00257] 6. reshaper_model_bin_delta_abs_cw_prec_minus1 não é bem restrito.
[00258] 7. ReshapePivot[ i ] pode ser maior do que 1<<BitDepth -1.
[00259] 8. Parâmetros de limitação fixos (isto é, valor mínimo igual a 0 e valor máximo igual a (1 << BD) -1 ) são utilizados sem consideração do uso de ILR. Aqui, BD indica a profundidade de bit.
[00260] 9. Operação de remodelagem nos componentes de croma apenas consideram o formato de cor 4:2:0.
[00261] 10. Diferente do componente de luma em que cada valor de luma pode ser remodelado diferentemente, apenas um fator é selecionado e é usado para componentes de croma. Tal escala pode ser mesclada na etapa de quantização/dequantização para reduzir a complexidade adicional.
[00262] 11. Limitação no processo de mapeamento inverso da figura pode considerar o limite superior e o limite inferior separadamente.
[00263] 12. ReshapePivot[ i ] para i não fica na faixa de reshaper_model_min_bin_idx < = i <= reshaper_model_max_bin_idx não é ajustado apropriadamente.
4. Modalidades e técnicas de exemplo
[00264] As modalidades detalhadas descritas a seguir devem ser consideradas como exemplos para explicar conceitos gerais. Estas modalidades não devem ser interpretadas de maneira estrita. Além do mais,
64 / 109 estas modalidades podem ser combinadas de qualquer maneira.
[00265] 1. É proposto que o modelo de remodelagem seja inicializado antes da decodificação de uma sequência.
[00266] a. Alternativamente, o modelo de remodelagem é inicializado antes da decodificação de uma fatia (ou figura, ou grupo de quadriculado) I.
[00267] b. Alternativamente, o modelo de remodelagem é inicializado antes da decodificação uma fatia (ou figura, ou grupo de quadriculado) de atualização de decodificação instantânea (IDR).
[00268] c. Alternativamente, o modelo de remodelagem é inicializado antes da decodificação de uma fatia (ou figura, ou grupo de quadriculado) de acesso aleatório liberado (CRA).
[00269] d. Alternativamente, o modelo de remodelagem é inicializado antes da decodificação de uma fatia (ou figura, ou grupo de quadriculado) intra ponto de acesso aleatório (I-RAP). As fatias (ou figuras, ou grupos de quadriculado) I-RAP podem incluir fatias (ou figuras, ou grupos de quadriculado) IDR e/ou fatias (ou figuras, ou grupos de quadriculado) CRA e/ou fatias (ou figuras, ou grupos de quadriculado) de acesso a enlace rompido (BLA).
[00270] e. Em um exemplo de inicialização, o modelo de remodelagem, OrgCW, é ajustado igual a (1 << BitDepthY )/( MaxBinIdx + 1). ReshapePivot[ i ] = InputPivot [ i ] = i * OrgCW para i = 0, 1,…, MaxBinIdx; f. Em um exemplo de inicialização do modelo de remodelagem, ScaleCoef[ i ] = InvScaleCoeff[ i ]= 1 << shiftY para i = 0, 1,…, MaxBinIdx; g. Em um exemplo de inicialização, o modelo de remodelagem, OrgCW, é ajustado igual a (1 << BitDepthY )/( MaxBinIdx + 1). RspCW[ i ] = OrgCW para i = 0, 1,…, MaxBinIdx.
[00271] h. Alternativamente, a informação de modelo de remodelagem
65 / 109 padrão pode ser sinalizada no nível da sequência (tal como em SPS), ou no nível da figura (tal como em PPS), e o modelo de remodelagem é inicializado como o padrão.
[00272] i. Alternativamente, quando o modelo de remodelagem não for inicializado, é restrito que ILR deve ser desabilitado.
[00273] 2. É proposto que a informação de modelo de remodelagem (tal como a informação em tile_group_reshaper_model( )) possa apenas ser sinalizada em uma fatia (ou figura, ou grupo de quadriculado) I.
[00274] a. Alternativamente, a informação de modelo de remodelagem (tal como a informação em tile_group_reshaper_model( )) pode apenas ser sinalizada em uma fatia (ou figura, ou grupo de quadriculado) IDR.
[00275] b. Alternativamente, a informação de modelo de remodelagem (tal como a informação em tile_group_reshaper_model( )) pode apenas ser sinalizada em uma fatia (ou figura, ou grupo de quadriculado) CRA.
[00276] c. Alternativamente, a informação de modelo de remodelagem (tal como a informação em tile_group_reshaper_model( )) pode apenas ser sinalizada em uma fatia (ou figura, ou grupo de quadriculado) I-RAP. As fatias (ou figuras, ou grupos de quadriculado) I-RAP podem incluir fatias (ou figuras, ou grupos de quadriculado) IDR e/ou fatias (ou figuras, ou grupos de quadriculado) CRA e/ou fatias (ou figuras, ou grupos de quadriculado) de acesso a enlace rompido (BLA).
[00277] d. Alternativamente, a informação de modelo de remodelagem (tal como a informação em tile_group_reshaper_model( )) pode ser sinalizada no nível da sequência (tal como em SPS), ou no nível da figura (tal como em PPS) ou APS.
[00278] 3. É proposto desautorizar a utilização da informação de remodelagem a partir de uma figura/fatia/grupo de quadriculado através de um certo tipo de figura (tal como uma figura IRAP).
[00279] a. Em um exemplo, a informação de modelo de remodelagem
66 / 109 sinalizada em uma primeira fatia (ou figura, ou grupo de quadriculado) não pode ser usada por uma segunda fatia (ou figura, ou grupo de quadriculado) se uma fatia (ou figura, ou grupo de quadriculado) I for transmitida depois da primeira fatia (ou figura, ou grupo de quadriculado), mas antes da segunda fatia (ou figura, ou grupo de quadriculado), ou a própria segunda fatia (ou figura, ou grupo de quadriculado) é uma fatia (ou figura, ou grupo de quadriculado) I.
[00280] b. Alternativamente, a informação de modelo de remodelagem sinalizada em uma primeira fatia (ou figura, ou grupo de quadriculado) não pode ser usada por uma segunda fatia (ou figura, ou grupo de quadriculado) se uma fatia (ou figura, ou grupo de quadriculado) IDR for transmitida depois da primeira fatia (ou figura, ou grupo de quadriculado), mas antes da segunda fatia (ou figura, ou grupo de quadriculado), ou a própria segunda fatia (ou figura, ou grupo de quadriculado) é uma fatia (ou figura, ou grupo de quadriculado) IDR.
[00281] c. Alternativamente, a informação de modelo de remodelagem sinalizada em uma primeira fatia (ou figura, ou grupo de quadriculado) não pode ser usada por uma segunda fatia (ou figura, ou grupo de quadriculado) se uma fatia (ou figura, ou grupo de quadriculado) CRA é transmitida depois da primeira fatia (ou figura, ou grupo de quadriculado), mas antes da segunda fatia (ou figura, ou grupo de quadriculado), ou a própria segunda fatia (ou figura, ou grupo de quadriculado) é uma fatia (ou figura, ou grupo de quadriculado) CRA.
[00282] d. Alternativamente, a informação de modelo de remodelagem sinalizada em uma primeira fatia (ou figura, ou grupo de quadriculado) não pode ser usada por uma segunda fatia (ou figura, ou grupo de quadriculado) se a fatia (ou figura, ou grupo de quadriculado) I-RAP for transmitida depois da primeira fatia (ou figura, ou grupo de quadriculado), mas antes da segunda fatia (ou figura, ou grupo de quadriculado), ou a própria segunda fatia (ou
67 / 109 figura, ou grupo de quadriculado) é uma fatia (ou figura, ou grupo de quadriculado) I-RAP. As fatias (ou figuras, ou grupos de quadriculado) I-RAP podem incluir fatias (ou figuras, ou grupos de quadriculado) IDR e/ou fatias (ou figuras, ou grupos de quadriculado) CRA e/ou fatias (ou figuras, ou grupos de quadriculado) de acesso a enlace rompido (BLA).
[00283] 4. Em um exemplo, um indicador é sinalizado em uma fatia (ou figura, ou grupo de quadriculado) I. Se o indicador for X, a informação de modelo de remodelagem é sinalizada nesta fatia (ou figura, ou grupo de quadriculado), caso contrário, o modelo de remodelagem é inicializado antes da decodificação desta fatia (ou figura, ou grupo de quadriculado). Por exemplo, X = 0 ou 1.
[00284] a. Alternativamente, um indicador é sinalizado em uma fatia (ou figura, ou grupo de quadriculado) IDR. Se o indicador for X, a informação de modelo de remodelagem é sinalizada nesta fatia (ou figura, ou grupo de quadriculado), caso contrário, o modelo de remodelagem é inicializado antes da decodificação desta fatia (ou figura, ou grupo de quadriculado). Por exemplo, X = 0 ou 1.
[00285] b. Alternativamente, um indicador é sinalizado em uma fatia (ou figura, ou grupo de quadriculado) CRA. Se o indicador for X, a informação de modelo de remodelagem é sinalizada nesta fatia (ou figura, ou grupo de quadriculado), caso contrário, o modelo de remodelagem é inicializado antes da decodificação desta fatia (ou figura, ou grupo de quadriculado). Por exemplo, X = 0 ou 1.
[00286] c. Alternativamente, um indicador é sinalizado em uma fatia (ou figura, ou grupo de quadriculado) I-RAP. Se o indicador for X, a informação de modelo de remodelagem é sinalizada nesta fatia (ou figura, ou grupo de quadriculado), caso contrário, o modelo de remodelagem é inicializado antes da decodificação desta fatia (ou figura, ou grupo de quadriculado). Por exemplo, X = 0 ou 1. As fatias (ou figuras, ou grupos de
68 / 109 quadriculado) I-RAP podem incluir fatias (ou figuras, ou grupos de quadriculado) IDR e/ou fatias (ou figuras, ou grupos de quadriculado) CRA e/ou fatias (ou figuras, ou grupos de quadriculado) de acesso a enlace rompido (BLA).
[00287] 5. Em um exemplo, se uma figura for dividida em diversas fatias (ou grupos de quadriculado), cada fatia (ou grupo de quadriculado) deve compartilhar a mesma informação de modelo de remodelagem.
[00288] a. Em um exemplo, se uma figura for dividida em diversas fatias (ou grupos de quadriculado), apenas a primeira fatia (ou grupo de quadriculado) pode sinalizar a informação de modelo de remodelagem.
[00289] 6. As variáveis usadas na remodelagem devem ser inicializadas, manipuladas e restritas dependendo da profundidade de bit.
[00290] a. Em um exemplo, MaxBinIdx = f(BitDepth), em que f é uma função. Por exemplo, MaxBinIdx=4*2(BitDepth-8)-1.
[00291] b. Em um exemplo, RspCW [ i ] deve estar na faixa de g(BitDepth) até 2 * OrgCW - 1. Por exemplo, RspCW [ i ] deve estar na faixa de 8*2(BitDepth-8) até 2 * OrgCW - 1.
[00292] 7. Em um exemplo, ScaleCoef[ i ] = InvScaleCoeff[ i ]= 1 << shiftY se RspCW[ i ] for igual a 0, para i = 0, 1,…, MaxBinIdx.
[00293] 8. É proposto que reshape_model_delta_max_bin_idx deva estar na faixa de 0 até MaxBinIdx-reshape_model_min_bin_idx, inclusive.
[00294] a. Alternativamente, reshape_model_delta_max_bin_idx deve estar na faixa de 0 até MaxBinIdx, inclusive.
[00295] b. Em um exemplo, reshape_model_delta_max_bin_idx é limitado na faixa de 0 até MaxBinIdx-reshape_model_min_bin_idx, inclusive.
[00296] c. Em um exemplo, reshape_model_delta_max_bin_idx é limitado na faixa de 0 até MaxBinIdx inclusive.
[00297] d. Em um exemplo, reshaper_model_min_bin_idx deve ser menor do que ou igual a reshaper_model_max_bin_idx.
69 / 109
[00298] e. Em um exemplo, reshaper_model_max_bin_idx é limitado na faixa de reshaper_model_min_bin_idx até MaxBinIdx, inclusive.
[00299] f. Em um exemplo, reshaper_model_min_bin_idx é limitado na faixa de 0 até reshaper_model_max_bin_idx, inclusive.
[00300] g. Uma ou algumas das restrições supra podem ser exigidas por um fluxo contínuo de bits em conformidade.
[00301] 9. É proposto que reshape_model_max_bin_idx seja ajustado igual a reshape_model_min_bin_idx +reshape_model_delta_maxmin_bin_idx, em que reshape_model_delta_maxmin_bin_idx, que é um número inteiro não sinalizado, é um elemento de sintaxe sinalizado depois de reshape_model_min_bin_idx.
[00302] b. Em um exemplo, reshape_model_delta_maxmin_bin_idx deve estar na faixa de 0 até MaxBinIdx- reshape_model_min_bin_idx, inclusive.
[00303] c. Em um exemplo, reshape_model_delta_maxmin_bin_idx deve estar na faixa de 1 a MaxBinIdx- reshape_model_min_bin_idx, inclusive.
[00304] d. Em um exemplo, reshape_model_delta_maxmin_bin_idx deve ser limitado na faixa de 0 até MaxBinIdx- reshape_model_min_bin_idx, inclusive.
[00305] e. Em um exemplo, reshape_model_delta_maxmin_bin_idx deve ser limitado na faixa de 1 a MaxBinIdx- reshape_model_min_bin_idx, inclusive.
[00306] f. Uma ou algumas das restrições supra podem ser exigidas por um fluxo contínuo de bits em conformidade.
[00307] 10. É proposto que reshaper_model_bin_delta_abs_cw_prec_minus1 deva ser menor do que um limite T.
70 / 109
[00308] a. Em um exemplo, T pode ser um número fixo, tais como 6 ou 7.
[00309] b. Em um exemplo, T pode depender da profundidade de bit.
[00310] c. As restrições supra podem ser exigidas por um fluxo contínuo de bits em conformidade.
[00311] 11. É proposto que RspCW[ i ] possa ser previsto por RspCW[ i -1], isto é, RspCW[ i ] = RspCW[ i -1] + RspDeltaCW[ i ].
[00312] a. Em um exemplo, RspCW[ i ] pode ser previsto por RspCW[ i -1] quando reshaper_model_min_bin_idx < = i <= reshaper_model_max_bin_idx.
[00313] b. Em um exemplo, RspCW[ i ] é previsto por OrgCW, isto é, RspCW[ i ] = OrgCW + RspDeltaCW[ i ] quando i for igual a 0.
[00314] c. Em um exemplo, RspCW[ i ] é previsto por OrgCW, isto é, RspCW[ i ] = OrgCW + RspDeltaCW[ i ] quando i for igual a reshaper_model_min_bin_idx.
[00315] 12. É proposto que reshape_model_bin_delta_sign_CW [ i ] nunca seja sinalizado e RspDeltaCW[ i ] = reshape_model_bin_delta_abs_CW [ i ] seja sempre um número positivo.
[00316] a. Em um exemplo, RspCW[ i ] = MinV + RspDeltaCW[ i ].
[00317] i. Em um exemplo, MinV = 32; ii. Em um exemplo, MinV = g(BitDepth). Por exemplo, MinV = 8*2(BitDepth-8).
[00318] 13. O cálculo de invAvgLuma pode depender do formato de cor.
[00319] a. Em um exemplo, invAvgLuma = Clip1Y( (∑i∑j predMapSamples[ (xCurr << scaleX ) + i ][ (yCurr << scaleY) + j ] + ((nCurrSw<<scaleX) * (nCurrSh<<scaleY) >>1)) / ( (nCurrSw<<scaleX) * (nCurrSh<<scaleY) ) ) i. scaleX=scaleY=1 para o formato 4:2:0;
71 / 109 ii. scaleX=scaleY=0 para o formato 4:4:4; iii. scaleX = 1 e scaleY = 0 para o formato 4:2:2.
[00320] 14. É proposto que limitação no processo de mapeamento inverso da figura pode considerar o limite superior e o limite inferior separadamente.
[00321] a. Em um exemplo, invLumaSample = Clip3(minVal, maxVal, invLumaSample), minVal, maxVal são calculados seguindo diferentes condições.
[00322] i. Por exemplo, minVal = T1 << (BitDepth - 8) se reshape_model_min_bin_idx > 0; caso contrário, minVal=0; por exemplo, T1 = 16.
[00323] ii. Por exemplo, maxVal = T2 << (BitDepth - 8) se reshape_model_max_bin_idx < MaxBinIdx; caso contrário, maxVal =(1<< BitDepth)-1; por exemplo, T2 = 235. Em um outro exemplo, T2 = 40.
[00324] 15. É proposto que ReshapePivot[ i ] deva ser restrito como ReshapePivot[ i ]<=T. Por exemplo, T = (1<< BitDepth)-1.
[00325] a. Por exemplo, ReshapePivot[i+1]=min(ReshapePivot[i]+RspCW[i], T).
[00326] 16. Em vez da remodelagem de cada valor residual do domínio de pixel para componentes de croma, um deslocamento de QP de croma (denotado como dChromaQp) pode ser derivado implicitamente para cada bloco ou TU, e o mesmo pode ser adicionado no QP de croma. Desta maneira, a remodelagem dos componentes de croma é mesclada no processo de quantização/dequantização.
[00327] a. Em um exemplo, dChromaQp pode ser derivado com base em um valor de luma representativo, denotado como repLumaVal.
[00328] b. Em um exemplo, repLumaVal pode ser derivado usando a parcial ou a íntegra do valor de previsão de luma do bloco ou da TU.
[00329] c. Em um exemplo, repLumaVal pode ser derivado usando a
72 / 109 parcial ou a íntegra do valor reconstruído de luma do bloco ou da TU.
[00330] d. Em um exemplo, repLumaVal pode ser derivado como média da parcial ou da íntegra do valor de previsão ou reconstruído de luma do bloco ou da TU.
[00331] e. Suponha que ReshapePivot[ idx ] <= repLumaVal < ReshapePivot[ idx + 1 ], então InvScaleCoeff[ idx ] pode ser usado para derivar dChromaQp.
[00332] i. Em um exemplo, dQp pode ser selecionado como argmin abs(2^(x/6 + shiftY) - InvScaleCoeff[ idx ]), x = -N…, M. Por exemplo, N = M = 63.
[00333] ii. Em um exemplo, dQp pode ser selecionado como argmin abs(1 - (2^(x/6 + shiftY) / InvScaleCoeff[ idx ])), x = -N…, M. Por exemplo, N = M = 63.
[00334] iii. Em um exemplo, para diferente valor de InvScaleCoeff[idx], o dChromaQp pode ser pré-calculado e armazenado em uma tabela de consulta.
[00335] 17. Em vez da remodelagem de cada valor residual do domínio de pixel para componentes de luma, um deslocamento de QP de luma (denotado como dQp) pode ser derivado implicitamente para cada bloco e pode ser adicionado no QP de luma. Desta maneira, a remodelagem do componente de luma é mesclada no processo de quantização/dequantização.
[00336] a. Em um exemplo, dQp pode ser derivado com base em um valor de luma representativo, denotado como repLumaVal.
[00337] b. Em um exemplo, repLumaVal pode ser derivado usando a parcial ou a íntegra do valor de previsão de luma do bloco ou da TU.
[00338] c. Em um exemplo, repLumaVal pode ser derivado como a média da parcial ou da íntegra do valor de previsão de luma do bloco ou da TU.
[00339] d. Suponha que idx = repLumaVal / OrgCW, então,
73 / 109 InvScaleCoeff[ idx ] pode ser usado para derivar dQp.
[00340] i. Em um exemplo, dQp pode ser selecionado como argmin abs(2^(x/6 + shiftY) - InvScaleCoeff[ idx ]), x = -N…, M. Por exemplo, N = M = 63.
[00341] ii. Em um exemplo, dQp pode ser selecionado como argmin abs(1 - (2^(x/6 + shiftY) / InvScaleCoeff[ idx ])), x = -N…, M. Por exemplo, N = M = 63.
[00342] iii. Em um exemplo, para diferente valor de InvScaleCoeff[idx], o dQp pode ser pré-calculado e armazenado em uma tabela de consulta.
[00343] Neste caso, dChromaQp pode ser ajustado igual a dQp.
5. Exemplo de implementações da tecnologia descrita
[00344] A figura 27A é um diagrama de blocos de um aparelho de processamento de vídeo 2700. O aparelho 2700 pode ser usado para implementar um ou mais dos métodos aqui descritos. O aparelho 2700 pode ser incorporado em um smartphone, tablet, computador, receptor Internet das Coisas (IoT), e similares. O aparelho 2700 pode incluir um ou mais processadores 2702, uma ou mais memórias 2704 e hardware do processamento de vídeo 2706. O(s) processador(es) 2702 pode(m) ser configurado(s) para implementar um ou mais métodos descritos no presente documento. A memória (memórias) 2704 pode ser usada para armazenar dados e código usados para implementar os métodos e as técnicas aqui descritos. O hardware de processamento de vídeo 2706 pode ser usado para implementar, no conjunto de circuitos de hardware, algumas técnicas descritas no presente documento, e pode ser parcialmente ou completamente uma parte dos processadores 2702 (por exemplo, núcleo processador de elementos gráficos GPU ou outro conjunto de circuitos de processamento de sinal).
[00345] A figura 27B é um outro exemplo de um diagrama de blocos
74 / 109 de um sistema de processamento de vídeo no qual técnicas descritas podem ser implementadas. A figura 27B é um diagrama de blocos que mostra um exemplo do sistema de processamento de vídeo 4100 no qual várias técnicas aqui descritas 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 receber 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 multicomponentes de 8 ou 10 bits, ou pode ser em um formato comprimido ou codificado. A entrada 4102 pode representar uma interface de rede, uma interface de barramento periférica, ou uma interface de armazenamento. Os exemplos da interface de rede incluem interfaces com fios, tais como Ethernet, rede óptica passiva (PON), etc. e interfaces sem fio, tais como interfaces Wi-Fi ou celular.
[00346] O sistema 4100 pode incluir um componente de codificação 4104 que pode implementar os vários métodos de codificação ou encriptação descritos no presente documento. O componente de codificação 4104 pode reduzir a taxa de bits média do vídeo proveniente 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, algumas vezes chamadas de técnicas de compressão de vídeo ou de transcodificação de vídeo. A saída do componente de codificação 4104 pode ser ou armazenada, ou transmitida por meio de uma comunicação conectada, da forma representada pelo componente 4106. A representação do fluxo contínuo de bits armazenado ou comunicado (ou codificado) do vídeo recebido na entrada 4102 pode ser usada pelo componente 4108 para gerar os valores de pixel ou vídeo exibível que é enviado para uma interface de exibição 4110. O processo de geração do vídeo visualizável por usuário a partir da representação de fluxo contínuo de bits é algumas vezes chamado de descompressão de vídeo. Além do mais, embora certas operações de processamento de vídeo sejam
75 / 109 referidas como operações ou ferramentas de “codificação”, será percebido que as ferramentas ou operações de codificação são usadas em um codificador e correspondentes ferramentas ou operações de decodificação que revertem os resultados da codificação serão realizadas por um decodificador.
[00347] Os exemplos de uma interface de barramento periférica ou uma interface de exibição podem incluir barramento serial universal (USB) ou interface multimídia de alta definição (HDMI) ou Displayport, e similares. Exemplos de interfaces de armazenamento incluem interface SATA (anexação avançada de tecnologia serial), PCI, IDE e similares. 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 realizar processamento de dados digitais e/ou exibição de vídeo.
[00348] No presente documento, o termo “processamento de vídeo” pode se referir a codificação de vídeo, decodificação de vídeo, compressão de vídeo ou descompressão de vídeo. Por exemplo, algoritmos de compressão de vídeo podem ser aplicados durante a conversão da representação de pixel de um vídeo para uma correspondente representação de fluxo contínuo de bits, ou vice-versa. A representação de fluxo contínuo de bits de um bloco de vídeo atual pode, por exemplo, corresponder a bits que são ou colocalizados ou espalhados em diferentes locais no fluxo contínuo de bits, como é definido pela sintaxe. Por exemplo, um macrobloco pode ser codificado em termos de valores residuais de erro transformados e codificados e também usando bits nos cabeçalhos e outros campos no fluxo contínuo de bits.
[00349] Será percebido que os métodos e as técnicas descritos irão se beneficiar das modalidades do codificador e/ou do decodificador de vídeo incorporadas dispositivos de processamento de vídeo, tais como smartphones, laptops, desktops e dispositivos similares, pela permissão do uso das técnicas descritas no presente documento.
76 / 109
[00350] A figura 28A é um fluxograma para um método de exemplo 2810 de processamento de vídeo. O método 2810 inclui, na etapa 2812, determinar, para uma conversão entre múltiplas unidades de vídeo de uma região de vídeo de um vídeo e uma representação codificada das múltiplas unidades de vídeo, informação de modelo de remodelagem que é comumente compartilhada pelas múltiplas unidades de vídeo. O método 2810 inclui adicionalmente, na etapa 2814, realizar uma conversão entre uma representação codificada do vídeo e o vídeo.
[00351] A figura 28B é um fluxograma para um método de exemplo 2820 de processamento de vídeo. O método 2820 inclui, na etapa 2822, determinar, para uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, um valor de uma variável na informação de modelo de remodelagem como uma função de uma profundidade de bit do vídeo. O método 2820 inclui adicionalmente, na etapa 2824, realizar a conversão com base na determinação.
[00352] A figura 28C é um fluxograma para um método de exemplo 2830 de processamento de vídeo. O método 2830 inclui, na etapa 2832, determinar, para uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, se habilita-se ou desabilita-se uma remodelagem em laço (ILR). O método 2830 inclui adicionalmente, na etapa 2834, realizar a conversão com base na determinação. Em algumas implementações, a determinação determina desabilitar a ILR em um caso em que a informação de modelo de remodelagem não for inicializada.
[00353] A figura 28D é um fluxograma para um método de exemplo 2840 de processamento de vídeo. O método 2840 inclui, na etapa 2842, determinar, para uma conversão entre uma primeira região de vídeo de um vídeo e uma representação codificada da primeira região de vídeo, se informação de remodelagem proveniente de uma segunda região de vídeo é
77 / 109 usável para a conversão com base em uma regra. O método 2840 inclui adicionalmente, na etapa 2844, realizar a conversão de acordo com a determinação.
[00354] A figura 28E é um fluxograma para um método de exemplo 2850 de processamento de vídeo. O método 2850 inclui, na etapa 2852, realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo. Em algumas implementações, a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo. Em algumas implementações, a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação da unidade de vídeo em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma. Em algumas implementações, a informação de modelo de remodelagem foi inicializada com base em uma regra de inicialização. Em algumas implementações, a informação de modelo de remodelagem é incluída na representação codificada apenas se a região de vídeo for codificada usando um tipo de codificação específico. Em algumas implementações, a conversão é realizada entre uma região de vídeo atual do vídeo e a representação codificada da região de vídeo atual de maneira tal que a região de vídeo atual seja codificada usando um tipo de codificação específico, em que a representação codificada se conforma com uma regra de formato que especifica para a informação de modelo de remodelagem na representação codificada condicionalmente com base em um valor de um indicador na representação codificada em um nível da região de vídeo.
[00355] Em algumas implementações, a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um
78 / 109 primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma. Em algumas implementações, a informação de modelo de remodelagem compreende um conjunto de parâmetro que compreende um elemento de sintaxe que especifica uma diferença entre um máximo índice de bin permitido e um máximo índice de bin a ser usado na reconstrução, e em que o parâmetro fica em uma faixa. Em algumas implementações, a informação de modelo de remodelagem compreende um conjunto de parâmetro que compreende um máximo índice de bin a ser usado na reconstrução, e em que o máximo índice de bin é derivado como um primeiro valor igual a uma soma de um mínimo índice de bin a ser usado na reconstrução e um elemento de sintaxe que é um número inteiro não sinalizado e sinalizado depois do mínimo índice de bin.
[00356] Em algumas implementações, a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui um primeiro elemento de sintaxe que deriva um número de bits usados para representar um segundo elemento de sintaxe que especifica um valor de palavra código delta absoluto a partir de um bin correspondente, e o primeiro elemento de sintaxe tem um valor menor do que um limite. Em algumas implementações, a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui um i-ésimo parâmetro que representa uma inclinação de um i-ésimo bin usado na ILR e tem um valor com base em um (i-1)ésimo parâmetro, i sendo um número inteiro positivo. Em algumas implementações, a informação de modelo de remodelagem usada para a ILR compreende um conjunto de parâmetro que inclui reshape_model_bin_delta_sign_CW [ i ] que não é sinalizado e RspDeltaCW[ i ] = reshape_model_bin_delta_abs_CW [ i ] é sempre um número positivo. Em algumas implementações, a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui um parâmetro, invAvgLuma, para usar valores de luma para a escala dependendo de um formato de cor da região de vídeo. Em
79 / 109 algumas implementações, a conversão inclui um processo de mapeamento inverso da figura para transformar amostras de luma da figura reconstruídas em amostras de luma da figura reconstruídas modificadas, e o processo de mapeamento inverso da figura inclui limitação no qual um limite superior e um limite inferior são ajustados separadamente um do outro. Em algumas implementações, a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui uma quantidade pivô restrita de maneira tal que Pivot[ i ]<=T. Em algumas implementações, um parâmetro de quantização (QP) de croma tem um deslocamento cujo valor é derivado para cada bloco ou unidade de transformação. Em algumas implementações, um parâmetro de quantização (QP) de luma tem um deslocamento cujo valor é derivado para cada bloco ou unidade de transformação.
[00357] Várias técnicas e modalidades podem ser descritas usando o seguinte formato com base em cláusula.
[00358] O primeiro conjunto de cláusulas descreve certos aspectos e características das técnicas descritas listadas na seção prévia.
[00359] 1. Um método de processamento de mídia visual, compreendendo: realizar uma conversão entre um bloco de vídeo atual e uma representação de fluxo contínuo de bits do bloco de vídeo atual, em que, durante a conversão, uma etapa de remodelagem em laço é usada para transformar uma representação do bloco de vídeo atual de um primeiro domínio para um segundo domínio de acordo com a informação complementar associada com a etapa de remodelagem em laço, em que a etapa de remodelagem em laço é com base, em parte, na informação de modelo de remodelagem, e em que, durante a conversão, a informação de modelo de remodelagem é utilizada em uma ou mais de: uma etapa de inicialização, uma etapa de sinalização, ou uma etapa de decodificação.
[00360] 2. O método da cláusula 1, em que a etapa de decodificação se refere a uma fatia, uma figura, ou um grupo de quadriculado I.
80 / 109
[00361] 3. O método da cláusula 1, em que a etapa de decodificação se refere a uma fatia, figura, ou grupo de quadriculado de atualização de decodificação instantânea (IDR).
[00362] 4. O método da cláusula 1, em que a etapa de decodificação se refere a uma fatia, figura, ou grupo de quadriculado de acesso aleatório liberado (CRA).
[00363] 5. O método da cláusula 1, em que a etapa de decodificação se refere a uma fatia, figura, ou grupo de quadriculado intra ponto de acesso aleatório (I-RAP).
[00364] 6. O método da cláusula 1, em que a fatia, figura, ou grupo de quadriculado I-RAP pode incluir um ou mais de: uma fatia, figura, ou grupo de quadriculado IDR, uma fatia, figura, ou grupo de quadriculado CRA, ou uma fatia, figura, ou grupo de quadriculado de acesso a enlace rompido (BLA).
[00365] 7. O método de qualquer uma ou mais das cláusulas 1 a 6, em que a etapa de inicialização ocorre antes da etapa de decodificação.
[00366] 8. O método de qualquer uma ou mais das cláusulas 1 a 7, em que a etapa de inicialização inclui ajustar uma quantidade de OrgCW como (1 << BitDepthY ) / ( MaxBinIdx + 1). ReshapePivot[ i ] = InputPivot [ i ] = i * OrgCW, para i = 0, 1,…, MaxBinIdx, em que OrgCW, BitDepthY, MaxBinIdx, e ReshapePivot são quantidades associadas com a informação de modelo de remodelagem.
[00367] 9. O método de qualquer uma ou mais das cláusulas 1 a 7, em que a etapa de inicialização inclui ajustar uma quantidade como ScaleCoef[ i ] = InvScaleCoeff[ i ]= 1 << shiftY, para i = 0, 1,…, MaxBinIdx, em que ScaleCoef, InvScaleCoeff, e shiftY são quantidades associadas com a informação de modelo de remodelagem.
[00368] 10. O método de qualquer uma ou mais das cláusulas 1 a 7, em que a etapa de inicialização inclui ajustar uma quantidade de OrgCW como (1
81 / 109 << BitDepthY ) / ( MaxBinIdx + 1). RspCW[ i ] = OrgCW para i = 0, 1,…, MaxBinIdx, a. OrgCW é ajustado igual a (1 << BitDepthY ) / ( MaxBinIdx + 1). RspCW[ i ] = OrgCW, para i = 0, 1,…, MaxBinIdx, em que OrgCW, BitDepthY, MaxBinIdx, e RspCW são quantidades associadas com a informação de modelo de remodelagem.
[00369] 11. O método da cláusula 1, em que a etapa de inicialização inclui ajustar a informação de modelo de remodelagem em valores padrões, e em que a etapa de sinalização inclui sinalizar os valores padrões incluídos em um conjunto de parâmetro de sequência (SPS) ou um conjunto de parâmetro de figura (PPS).
[00370] 12. O método da cláusula 1, compreendendo adicionalmente: mediante determinação de que a informação de modelo de remodelagem não é inicializada durante a etapa de inicialização, desabilitar a etapa de remodelagem em laço.
[00371] 13. O método da cláusula 1, em que, durante a etapa de sinalização, a informação de modelo de remodelagem é sinalizada em qualquer um de: uma fatia, figura, ou grupo de quadriculado I, uma fatia, figura, ou grupo de quadriculado IDR, uma fatia, figura, ou grupo de quadriculado intra ponto de acesso aleatório (I-RAP).
[00372] 14. O método da cláusula 1, em que a fatia, figura, ou grupo de quadriculado I-RAP pode incluir um ou mais de: uma fatia, figura, ou grupo de quadriculado IDR, uma fatia, figura, ou grupo de quadriculado CRA, ou uma fatia, figura, ou grupo de quadriculado de acesso a enlace rompido (BLA).
[00373] 15. O método da cláusula 1, em que a etapa de sinalização inclui sinalizar a informação de modelo de remodelagem incluída em um conjunto de parâmetro de sequência (SPS) ou um conjunto de parâmetro de figura (PPS).
[00374] 16. Um método de processamento de mídia visual,
82 / 109 compreendendo: realizar uma conversão entre um bloco de vídeo atual e uma representação de fluxo contínuo de bits do bloco de vídeo atual, em que, durante a conversão, uma etapa de remodelagem em laço é usada para transformar uma representação do bloco de vídeo atual de um primeiro domínio para um segundo domínio de acordo com a informação complementar associada com a etapa de remodelagem em laço, em que a etapa de remodelagem em laço é com base, em parte, na informação de modelo de remodelagem, e em que, durante a conversão, a informação de modelo de remodelagem é utilizada em uma ou mais de: uma etapa de inicialização, uma etapa de sinalização, ou uma etapa de decodificação; e desabilitar a utilização da informação de modelo de remodelagem em uma segunda figura quando a informação de modelo de remodelagem for sinalizada em uma primeira figura.
[00375] 17. O método da cláusula 16, compreendendo adicionalmente: se uma figura intermediária for transmitida depois da primeira figura, mas antes da segunda figura, desabilitar a utilização da informação de modelo de remodelagem na segunda figura quando a informação de modelo de remodelagem for sinalizada na primeira figura.
[00376] 18. O método da cláusula 17, em que a segunda figura é uma figura I, uma figura IDR, uma figura CRA, ou uma figura I-RAP.
[00377] 19. O método de qualquer uma ou mais das cláusulas 17 a 18, em que a figura intermediária é uma figura I, uma figura IDR, uma figura CRA, ou uma figura I-RAP.
[00378] 20. O método de qualquer uma ou mais das cláusulas 16 a 19, em que a figura inclui um quadriculado ou um grupo.
[00379] 21. Um método de processamento de mídia visual, compreendendo: realizar uma conversão entre um bloco de vídeo atual e uma representação de fluxo contínuo de bits do bloco de vídeo atual, em que, durante a conversão, uma etapa de remodelagem em laço é usada para
83 / 109 transformar uma representação do bloco de vídeo atual de um primeiro domínio para um segundo domínio de acordo com a informação complementar associada com a etapa de remodelagem em laço, em que a etapa de remodelagem em laço é com base, em parte, na informação de modelo de remodelagem, e em que, durante a conversão, a informação de modelo de remodelagem é utilizada em uma ou mais de: uma etapa de inicialização, uma etapa de sinalização, ou uma etapa de decodificação e, durante a etapa de sinalização, sinalização de um indicador em uma figura de maneira tal que, com base no indicador, a informação de modelo de remodelagem seja enviada na figura, caso contrário, a informação de modelo de remodelagem é inicializada na etapa de inicialização antes de a figura ser decodificada na etapa de decodificação.
[00380] 22. O método da cláusula 21, em que a figura é uma figura I, uma figura IDR, uma figura CRA, ou uma figura I-RAP.
[00381] 23. O método de qualquer uma ou mais das cláusulas 21 a 22, em que a figura inclui um quadriculado ou um grupo.
[00382] 24. O método da cláusula 21, em que o indicador toma um valor 0 ou 1.
[00383] 25. Um método de processamento de mídia visual, compreendendo: realizar uma conversão entre um bloco de vídeo atual e uma representação de fluxo contínuo de bits do bloco de vídeo atual, em que, durante a conversão, uma etapa de remodelagem em laço é usada para transformar uma representação do bloco de vídeo atual de um primeiro domínio para um segundo domínio de acordo com a informação complementar associada com a etapa de remodelagem em laço, em que a etapa de remodelagem em laço é com base, em parte, na informação de modelo de remodelagem, e em que, durante a conversão, a informação de modelo de remodelagem é utilizada em uma ou mais de: uma etapa de inicialização, uma etapa de sinalização, ou uma etapa de decodificação, e,
84 / 109 mediante divisão de uma figura em múltiplas unidades, a informação de modelo de remodelagem associada com cada uma das múltiplas unidades é a mesma.
[00384] 26. Um método de processamento de mídia visual, compreendendo: realizar uma conversão entre um bloco de vídeo atual e uma representação de fluxo contínuo de bits do bloco de vídeo atual, em que, durante a conversão, uma etapa de remodelagem em laço é usada para transformar uma representação do bloco de vídeo atual de um primeiro domínio para um segundo domínio de acordo com a informação complementar associada com a etapa de remodelagem em laço, em que a etapa de remodelagem em laço é com base, em parte, na informação de modelo de remodelagem, e em que, durante a conversão, a informação de modelo de remodelagem é utilizada em uma ou mais de: uma etapa de inicialização, uma etapa de sinalização, ou uma etapa de decodificação, e, mediante divisão de uma figura em múltiplas unidades, a informação de modelo de remodelagem é sinalizada apenas em uma primeira das múltiplas unidades.
[00385] 27. O método de qualquer uma ou mais das cláusulas 25 a 26, em que a unidade corresponde a uma fatia ou um grupo de quadriculado.
[00386] 28. Um método de processamento de mídia visual, compreendendo: realizar uma conversão entre um bloco de vídeo atual e uma representação de fluxo contínuo de bits do bloco de vídeo atual, em que, durante a conversão, uma etapa de remodelagem em laço é usada para transformar uma representação do bloco de vídeo atual de um primeiro domínio para um segundo domínio de acordo com a informação complementar associada com a etapa de remodelagem em laço, em que a etapa de remodelagem em laço é com base, em parte, na informação de modelo de remodelagem, e em que, durante a conversão, a informação de modelo de remodelagem é utilizada em uma ou mais de: uma etapa de
85 / 109 inicialização, uma etapa de sinalização, ou uma etapa de decodificação, e em que a informação de modelo de remodelagem é manipulada com base em um valor de profundidade de bit.
[00387] 29. O método da cláusula 28, em que a informação de modelo de remodelagem inclui uma variável MaxBinIdx que é relacionada ao valor de profundidade de bit.
[00388] 30. O método da cláusula 28, em que a informação de modelo de remodelagem inclui uma variável RspCW que é relacionada ao valor de profundidade de bit.
[00389] 30. O método da cláusula 29, em que a informação de modelo de remodelagem inclui uma variável reshape_model_delta_max_bin_idx que varia em valores de 0 até a variável MaxBinIdx.
[00390] 31. O método da cláusula 29, em que a informação de modelo de remodelagem inclui uma variável reshape_model_delta_max_bin_idx que é limitado em uma faixa que começa de 0 até um valor correspondente a MaxBinIdx - reshape_model_min_bin_idx, em que reshape_model_min_bin_idx é uma outra variável na informação de modelo de remodelagem.
[00391] 32. O método da cláusula 29, em que a informação de modelo de remodelagem inclui uma variável reshape_model_delta_max_bin_idx que é limitado em uma faixa que começa de 0 até a variável MaxBinIdx.
[00392] 33. O método da cláusula 29, em que a informação de modelo de remodelagem inclui uma variável reshaper_model_min_bin_idx e uma variável reshaper_model_delta_max_bin_idx, em que a variável reshaper_model_min_bin_idx é menor do que a variável reshaper_model_min_bin_idx.
[00393] 34. O método da cláusula 29, em que a informação de modelo de remodelagem inclui uma variável reshaper_model_min_bin_idx e uma variável reshaper_model_delta_max_bin_idx, em que a
86 / 109 reshaper_model_max_bin_idx é limitado em uma faixa que varia de reshaper_model_min_bin_idx até MaxBinIdx.
[00394] 35. O método da cláusula 29, em que a informação de modelo de remodelagem inclui uma variável reshaper_model_min_bin_idx e uma variável reshaper_model_delta_max_bin_idx, em que a reshaper_model_min_bin_idx é limitado em uma faixa que varia de 0 até reshaper_model_max_bin_idx.
[00395] 36. O método da cláusula 29, em que a informação de modelo de remodelagem inclui uma variável reshaper_model_bin_delta_abs_cw_prec_minus1 que é menor do que um valor limite.
[00396] 37. O método da cláusula 36, em que o valor limite é um número fixo.
[00397] 38. O método da cláusula 36, em que o valor limite é com base no valor de profundidade de bit.
[00398] 39. O método da cláusula 28, em que a informação de modelo de remodelagem inclui uma variável invAvgLuma calculada como invAvgLuma = Clip1Y( ( i j predMapSamples[ (xCurr << scaleX ) + i ][ (yCurr << scaleY) + j ] + ((nCurrSw<<scaleX) * (nCurrSh<<scaleY) >>1)) / ( (nCurrSw<<scaleX) * (nCurrSh<<scaleY) ) ) .
[00399] 40. O método da cláusula 28, em que scaleX=scaleY=1 para o formato 4:2:0.
[00400] 41. O método da cláusula 28, em que scaleX=scaleY=1 para o formato 4:4:4.
[00401] 42. O método da cláusula 28, em que scaleX = 1 e scaleY = 0 para o formato 4:2:2.
[00402] 43. O método da cláusula 28, em que a informação de modelo de remodelagem inclui uma variável invLumaSample calculada como
87 / 109 invLumaSample = Clip3(minVal, maxVal, invLumaSample).
[00403] 44. O método da cláusula 43, em que minVal = T1 << (BitDepth - 8) se reshape_model_min_bin_idx > 0, caso contrário, minVal=0.
[00404] 45. O método da cláusula 43, em que maxVal = T2 << (BitDepth - 8) se reshape_model_max_bin_idx < MaxBinIdx, caso contrário, maxVal =(1<< BitDepth)-1.
[00405] 46. O método da cláusula 44, em que T1=16.
[00406] 47. O método da cláusula 45, em que T2 toma o valor 235 ou
40.
[00407] 48. O método da cláusula 28, em que a informação de modelo de remodelagem inclui uma quantidade ReshapePivot restrita de uma maneira, de maneira tal que ReshapePivot[ i ]<=T.
[00408] 49. O método da cláusula 48, em que T pode ser calculado como T = (1<< BitDepth)-1, em que BitDepth corresponde ao valor de profundidade de bit.
[00409] 50. O método de qualquer uma ou mais das cláusulas 1 até 49, em que o processamento de vídeo é uma implementação no lado do codificador.
[00410] 51. O método de qualquer uma ou mais das cláusulas 1 até 49, em que o processamento de vídeo é uma implementação no lado do decodificador.
[00411] 52. 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, mediante execução pelo processador, fazem com que o processador implemente o método em qualquer uma ou mais das cláusulas 1 a
49.
[00412] 53. 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
88 / 109 qualquer uma ou mais das cláusulas 1 a 49.
[00413] O segundo conjunto de cláusulas descreve certos aspectos e características das técnicas descritas listadas na seção prévia, incluindo, por exemplo, o Exemplo 1 ao 7.
[00414] 1. Um método de processamento de vídeo, compreendendo: determinar, para uma conversão entre múltiplas unidades de vídeo de uma região de vídeo de um vídeo e uma representação codificada das múltiplas unidades de vídeo, informação de modelo de remodelagem que é comumente compartilhada pelas múltiplas unidades de vídeo; e realizar uma conversão entre uma representação codificada do vídeo e o vídeo, em que a informação de modelo de remodelagem provê informação para construir amostras de vídeo em um primeiro domínio e um segundo domínio e/ou escalar resíduo de croma de uma unidade de vídeo de croma.
[00415] 2. O método da cláusula 1, em que as múltiplas unidades de vídeo correspondem a múltiplas fatias ou múltiplos grupos de quadriculado.
[00416] 3. O método da cláusula 2, em que as múltiplas unidades de vídeo são associadas com uma mesma figura.
[00417] 4. O método da cláusula 1, em que a informação de modelo de remodelagem está presente na representação codificada das múltiplas unidades de vídeo apenas uma vez.
[00418] 5. Um método de processamento de vídeo, compreendendo: determinar, para uma conversão entre uma representação codificada de um vídeo compreendendo uma mais regiões de vídeo e o vídeo, um valor de uma variável na informação de modelo de remodelagem como uma função de uma profundidade de bit do vídeo, e realizar a conversão com base na determinação, em que a informação de remodelagem é aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, e em que a informação de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em
89 / 109 uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma.
[00419] 6. O método da cláusula 5, em que a variável inclui uma variável MaxBinIdx que é relacionada ao valor de profundidade de bit.
[00420] 7. O método da cláusula 5, em que a variável inclui uma variável RspCW que é relacionada ao valor de profundidade de bit.
[00421] 8. O método da cláusula 7, em que a variável RspCW é usada para derivar uma variável ReshapePivot que é usada para derivar uma reconstrução de uma unidade de vídeo de uma região de vídeo.
[00422] 9. O método da cláusula 5, em que a variável inclui um InvScaleCoef[ i ] que satisfaz InvScaleCoeff[ i ]= 1 << shiftY, se RspCW[ i ] for igual a 0 para i que fica em uma faixa de 0 até MaxBinIdx, em que shiftY é um número inteiro que representa a precisão.
[00423] 10. O método da cláusula 9, em que shiftY é 11 ou 14.
[00424] 11. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação da unidade de vídeo em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem foi inicializada com base em uma regra de inicialização.
[00425] 12. O método da cláusula 11, em que a inicialização da informação de modelo de remodelagem ocorre antes da decodificação de uma sequência do vídeo.
[00426] 13. O método da cláusula 11, em que a inicialização da
90 / 109 informação de modelo de remodelagem ocorre antes da decodificação de pelo menos um de i) uma região de vídeo codificada usando um tipo de codificação Intra (I), ii) uma região de vídeo codificada usando um tipo de codificação de atualização de decodificação instantânea (IDR), iii) uma região de vídeo codificada usando uma codificação tipo acesso aleatório liberado (CRA), ou iv) uma região de vídeo codificada usando uma codificação tipo intra ponto de acesso aleatório (I-RAP).
[00427] 14. O método da cláusula 13, em que a região de vídeo codificada usando o intra ponto de acesso aleatório (I-RAP) inclui pelo menos uma de i) a região de vídeo codificada usando um tipo de codificação de atualização de decodificação instantânea (IDR), ii) a região de vídeo codificada usando uma codificação tipo acesso aleatório liberado (CRA), e/ou iii) a região de vídeo codificada usando uma codificação tipo acesso a enlace rompido (BLA).
[00428] 15. O método da cláusula 11, em que a inicialização da informação de modelo de remodelagem inclui ajustar uma quantidade de OrgCW como (1 << BitDepthY ) / ( MaxBinIdx + 1). ReshapePivot[ i ] = InputPivot [ i ] = i * OrgCW, para i = 0, 1,…, MaxBinIdx, em que OrgCW, BitDepthY, MaxBinIdx, e ReshapePivot são quantidades associadas com a informação de modelo de remodelagem.
[00429] 16. O método da cláusula 11, em que a inicialização da informação de modelo de remodelagem inclui ajustar uma quantidade como ScaleCoef[ i ] = InvScaleCoeff[ i ]= 1 << shiftY, para i = 0, 1,…, MaxBinIdx, em que ScaleCoef, InvScaleCoeff, e shiftY são quantidades associadas com a informação de modelo de remodelagem.
[00430] 17. O método da cláusula 11, em que a inicialização da informação de modelo de remodelagem inclui ajustar uma quantidade de OrgCW como (1 << BitDepthY ) / ( MaxBinIdx + 1). RspCW[ i ] = OrgCW para i = 0, 1,…, MaxBinIdx, a. OrgCW é ajustado igual a (1 << BitDepthY ) /
91 / 109 ( MaxBinIdx + 1). RspCW[ i ] = OrgCW, para i = 0, 1,…, MaxBinIdx, em que OrgCW, BitDepthY, MaxBinIdx, e RspCW são quantidades associadas com a informação de modelo de remodelagem.
[00431] 18. O método da cláusula 11, em que a inicialização da informação de modelo de remodelagem inclui ajustar a informação de modelo de remodelagem em valores padrões, e em que os valores padrões são incluídos em um conjunto de parâmetro de sequência (SPS) ou um conjunto de parâmetro de figura (PPS).
[00432] 19. Um método de processamento de vídeo, compreendendo: determinar, para uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, se habilita-se ou desabilita-se uma remodelagem em laço (ILR); e realizar a conversão com base na determinação, e em que a representação codificada inclui informação de modelo de remodelagem aplicável para a ILR de algumas de uma ou mais regiões de vídeo, e em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma região de vídeo com base em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a determinação determina desabilitar a ILR em um caso em que a informação de modelo de remodelagem não é inicializada.
[00433] 20. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, em que a informação
92 / 109 de modelo de remodelagem é incluída na representação codificada apenas se a região de vídeo for codificada usando um tipo de codificação específico.
[00434] 21. O método da cláusula 20, em que a região de vídeo é uma fatia ou uma figura ou um grupo de quadriculado e em que o tipo de codificação específico é um tipo de codificação Intra (I).
[00435] 22. O método da cláusula 20, em que a região de vídeo é uma fatia ou uma figura ou um grupo de quadriculado, e em que o tipo de codificação específico é um tipo de codificação de atualização de decodificação instantânea (IDR).
[00436] 23. O método da cláusula 20, em que a região de vídeo é uma fatia ou uma figura ou um grupo de quadriculado, e em que o tipo de codificação específico é uma codificação tipo acesso aleatório liberado (CRA).
[00437] 24. O método da cláusula 20, em que a região de vídeo é uma fatia ou uma figura ou um grupo de quadriculado, e em que o tipo de codificação específico é uma codificação tipo intra ponto de acesso aleatório (I-RAP).
[00438] 25. O método da cláusula 24, em que a região de vídeo interveniente codificada usando a codificação tipo intra ponto de acesso aleatório (I-RAP) inclui pelo menos uma de i) a região de vídeo codificada usando um tipo de codificação de atualização de decodificação instantânea (IDR), ii) a região de vídeo codificada usando uma codificação tipo acesso aleatório liberado (CRA), e/ou iii) a região de vídeo codificada usando uma codificação tipo acesso a enlace rompido (BLA).
[00439] 26. O método da cláusula 20, em que a informação de modelo de remodelagem é incluída em um nível da sequência, um nível da figura, ou um conjunto do parâmetro de adaptação (APS).
[00440] 27. Um método de processamento de vídeo, compreendendo: determinar, para uma conversão entre uma primeira região de vídeo de um
93 / 109 vídeo e uma representação codificada da primeira região de vídeo, se a informação de remodelagem proveniente de uma segunda região de vídeo é usável para a conversão com base em uma regra; e realizar a conversão de acordo com a determinação.
[00441] 28. O método da cláusula 27, em que a informação de remodelagem é usada para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma.
[00442] 29. O método da cláusula 27, em que a regra desautoriza o uso da informação de modelo de remodelagem pela primeira região de vídeo em um caso em que a representação codificada incluir uma região de vídeo interveniente codificada usando um tipo de codificação em particular entre a primeira região de vídeo e a segunda região de vídeo.
[00443] 30. O método da cláusula 29, em que a região de vídeo interveniente é codificada usando um tipo de codificação Intra (I).
[00444] 31. O método de qualquer uma das cláusulas 29 a 30, em que a região de vídeo interveniente é codificada usando um tipo de codificação de atualização de decodificação instantânea (IDR).
[00445] 32. O método de qualquer uma das cláusulas 29 a 31, em que a região de vídeo interveniente é codificada usando uma codificação tipo acesso aleatório liberado (CRA).
[00446] 33. O método de qualquer uma das cláusulas 29 a 32, em que a região de vídeo interveniente é codificada usando uma codificação tipo intra ponto de acesso aleatório (I-RAP).
[00447] 34. O método da cláusula 33, em que a região de vídeo interveniente codificada usando a codificação tipo intra ponto de acesso aleatório (I-RAP) inclui pelo menos uma de i) a região de vídeo codificada usando um tipo de codificação de atualização de decodificação instantânea (IDR), ii) a região de vídeo codificada usando uma codificação tipo acesso
94 / 109 aleatório liberado (CRA), e/ou iii) a região de vídeo codificada usando uma codificação tipo acesso a enlace rompido (BLA).
[00448] 35. O método de qualquer uma das cláusulas 27 a 34, em que a primeira região de vídeo, a segunda região de vídeo, e/ou a região de vídeo interveniente correspondem a fatias.
[00449] 36. O método de qualquer uma das cláusulas 27 a 35, em que a primeira região de vídeo, a segunda região de vídeo, e/ou a região de vídeo interveniente correspondem a figuras.
[00450] 37. O método de qualquer uma das cláusulas 27 a 36, em que a primeira região de vídeo, a segunda região de vídeo, e/ou a região de vídeo interveniente correspondem a grupos de quadriculado.
[00451] 38. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma região de vídeo atual de um vídeo e uma representação codificada da região de vídeo atual de maneira tal que a região de vídeo atual seja codificada usando um tipo de codificação específico, em que a representação codificada se conforma com uma regra de formato que especifica para a informação de modelo de remodelagem na representação codificada condicionalmente com base em um valor de um indicador na representação codificada em um nível da região de vídeo.
[00452] 39. O método da cláusula 38, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma.
[00453] 40. O método da cláusula 38, em que, em um caso em que o valor do indicador tiver um primeiro valor, a informação de modelo de remodelagem é sinalizada na região de vídeo e, caso contrário, a informação de modelo de remodelagem é inicializada antes da decodificação da região de vídeo.
95 / 109
[00454] 41. O método da cláusula 38, em que o primeiro valor é 0 ou 1.
[00455] 42. O método da cláusula 38, em que a região de vídeo é uma fatia ou uma figura ou um grupo de quadriculado e o tipo de codificação específico é um tipo de codificação Intra (I).
[00456] 43. O método da cláusula 38, em que a região de vídeo é uma fatia ou uma figura ou um grupo de quadriculado e o tipo de codificação específico é um tipo de codificação de atualização de decodificação instantânea (IDR).
[00457] 44. O método da cláusula 38, em que a região de vídeo é uma fatia ou uma figura ou um grupo de quadriculado e o tipo de codificação específico é uma codificação tipo acesso aleatório liberado (CRA).
[00458] 45. O método da cláusula 38, em que a região de vídeo é uma fatia ou uma figura ou um grupo de quadriculado e o tipo de codificação específico é uma codificação tipo intra ponto de acesso aleatório (I-RAP).
[00459] 46. O método da cláusula 45, em que a região de vídeo codificada usando o intra ponto de acesso aleatório (I-RAP) inclui pelo menos uma de i) a região de vídeo codificada usando um tipo de codificação de atualização de decodificação instantânea (IDR), ii) a região de vídeo codificada usando uma codificação tipo acesso aleatório liberado (CRA), e/ou iii) a região de vídeo codificada usando uma codificação tipo acesso a enlace rompido (BLA).
[00460] 47. O método de qualquer uma das cláusulas 1 a 46, em que a realização da conversão inclui gerar o vídeo a partir da representação codificada.
[00461] 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, mediante execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 47.
[00462] 49. Um produto de programa de computador armazenado em
96 / 109 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.
[00463] O terceiro conjunto de cláusulas descreve certos aspectos e características das técnicas descritas listadas na seção prévia, incluindo, por exemplo, os Exemplos 8 e 9.
[00464] 1. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que compreende um elemento de sintaxe que especifica uma diferença entre um máximo índice de bin permitido e um máximo índice de bin a ser usado na reconstrução, e em que o parâmetro fica em uma faixa.
[00465] 2. O método da cláusula 1, em que o elemento de sintaxe fica na faixa de 0 até uma diferença entre o máximo índice de bin permitido e um mínimo índice de bin a ser usado na reconstrução.
[00466] 3. O método da cláusula 1, em que o elemento de sintaxe fica na faixa de 0 até o máximo índice de bin permitido.
[00467] 4. O método de qualquer uma das cláusulas 1 a 3, em que o máximo índice de bin permitido é igual a 15.
[00468] 5. O método da cláusula 1 ou 4, em que o elemento de sintaxe foi limitado na faixa.
97 / 109
[00469] 6. O método da cláusula 1, em que o mínimo índice de bin é igual a ou menor do que o máximo índice de bin.
[00470] 7. O método da cláusula 1, em que o máximo índice de bin foi limitado em uma faixa do mínimo índice de bin até o máximo índice de bin permitido.
[00471] 8. O método da cláusula 1, em que o mínimo índice de bin foi limitado em uma faixa de 0 até o máximo índice de bin.
[00472] 9. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que compreende um máximo índice de bin a ser usado na reconstrução, e em que o máximo índice de bin é derivado como um primeiro valor igual a uma soma de um mínimo índice de bin a ser usado na reconstrução e um elemento de sintaxe que é um número inteiro não sinalizado e sinalizado depois do mínimo índice de bin.
[00473] 10. O método da cláusula 9, em que o elemento de sintaxe especifica uma diferença entre o máximo índice de bin e um máximo índice de bin permitido.
[00474] 11. O método da cláusula 10, em que o elemento de sintaxe fica em uma faixa de 0 até um segundo valor que é igual a uma diferença entre o máximo bin permitido e o mínimo índice de bin.
[00475] 12. O método da cláusula 10, em que o elemento de sintaxe
98 / 109 fica em uma faixa de 1 até um segundo valor que é igual a uma diferença entre o mínimo índice de bin e o máximo bin permitido.
[00476] 13. O método da cláusula 11 ou 12, em que o elemento de sintaxe foi limitado na faixa.
[00477] 14. O método da cláusula 9, em que elementos de sintaxe do conjunto de parâmetro estão na faixa exigida em um fluxo contínuo de bits de conformidade.
[00478] 15. O método de qualquer uma das cláusulas 1 a 14, em que a realização da conversão inclui gerar o vídeo a partir da representação codificada.
[00479] 16. 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, mediante execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 15.
[00480] 17. 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 15.
[00481] O quarto conjunto de cláusulas descreve certos aspectos e características das técnicas descritas listadas na seção prévia, incluindo, por exemplo, os Exemplos 10 a 17.
[00482] 1. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um
99 / 109 segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui um primeiro elemento de sintaxe que deriva um número de bits usados para representar um segundo elemento de sintaxe que especifica um valor de palavra código delta absoluto a partir de um bin correspondente, e em que o primeiro elemento de sintaxe tem um valor menor do que um limite.
[00483] 2. O método da cláusula 1, em que o primeiro elemento de sintaxe especifica uma diferença entre o número de bits usados para representar o segundo elemento de sintaxe e 1.
[00484] 3. O método da cláusula 1, em que o limite tem um valor fixo.
[00485] 4. O método da cláusula 1, em que o limite tem uma variável cujo valor depende de uma profundidade de bit.
[00486] 5. O método da cláusula 4, em que o limite é BitDepth - 1, em que BitDepth representa a profundidade de bit.
[00487] 6. O método da cláusula 1, em que o primeiro elemento de sintaxe fica em um fluxo contínuo de bits de conformidade.
[00488] 7. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui um i-ésimo parâmetro que representa uma inclinação de um i-ésimo bin usado na ILR e tem um valor com base em um
100 / 109 (i-1)ésimo parâmetro, i sendo um número inteiro positivo.
[00489] 8. O método da cláusula 7, em que o i-ésimo parâmetro é previsto a partir do (i-1)ésimo parâmetro para um caso de reshaper_model_min_bin_idx < = i <= reshaper_model_max_bin_idx. A reshaper_model_min_bin_idx e a reshaper_model_max_bin_index indicando um mínimo índice de bin e um máximo índice de bin que são usados na construção.
[00490] 9. O método da cláusula 7, em que o i-ésimo parâmetro é previsto a partir de OrgCW para i que é igual a 0.
[00491] 10. O método da cláusula 7, em que o i-ésimo parâmetro é previsto a partir de um outro parâmetro para i que é igual a um valor de reshaper_model_min_bin_idx indicando um mínimo índice de bin usado na construção.
[00492] 11. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem usada para a ILR compreende um conjunto de parâmetro que inclui reshape_model_bin_delta_sign_CW [ i ] que não é sinalizado e RspDeltaCW[ i ] = reshape_model_bin_delta_abs_CW [ i ] é sempre um número positivo.
[00493] 12. O método da cláusula 11, em que uma variável, CW[ i ], é calculada como uma soma de MinV e RspDeltaCW[ i ].
[00494] 13. O método da cláusula 12, em que MinV é 32 ou
101 / 109 g(BitDepth), BitDepth correspondendo a um valor de profundidade de bit.
[00495] 14. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui um parâmetro, invAvgLuma, para usar valores de luma para a escala dependendo de um formato de cor da região de vídeo.
[00496] 15. O método da cláusula 14, em que o invAvgLuma é calculado como invAvgLuma = Clip1Y( (ΣiΣj predMapSamples[ (xCurr << scaleX ) + i ][ (yCurr << scaleY) + j ] + (cnt >>1)) / cnt, em que predMapSamples representa amostras de luma reconstruídas, ( xCurrY, yCurrY ) representam uma amostra de croma de topo-esquerda de um bloco de transformação de croma atual em relação a uma amostra de croma de topo-esquerda de uma figura atual, (i, j) representa uma posição em relação à amostra de croma de topo-esquerda do bloco de transformação de croma atual de uma amostra de luma envolvida para derivar o invAvgLuma, e cnt representa um número de amostras de luma envolvidas para derivar o invAvgLuma.
[00497] 16. O método da cláusula 15, em que scaleX=scaleY=1 para o formato 4:2:0.
[00498] 17. O método da cláusula 15, em que scaleX=scaleY=0 para o formato 4:4:4.
102 / 109
[00499] 18. O método da cláusula 15, em que scaleX = 1 e scaleY = 0 para o formato 4:2:2.
[00500] 19. Um método de processamento de vídeo, compreendendo: realizar 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 um processo de mapeamento inverso da figura para transformar amostras de luma da figura reconstruídas em amostras de luma da figura reconstruídas modificadas, em que o processo de mapeamento inverso da figura inclui limitação no qual um limite superior e um limite inferior são ajustados separadamente um do outro.
[00501] 20. O método da cláusula 19, em que as amostras de luma da figura reconstruídas modificadas incluem um valor invLumaSample que é calculado como invLumaSample = Clip3(minVal, maxVal, invLumaSample), minVal, maxVal.
[00502] 21. O método da cláusula 20, em que minVal = T1 << (BitDepth - 8) em um caso em que um mínimo índice de bin a ser usado na construção for maior que 0 e, caso contrário, minVal=0.
[00503] 22. O método da cláusula 20, em que maxVal = T2 << (BitDepth - 8) em um caso em que um máximo índice de bin a ser usado na construção for menor do que um máximo índice de bin permitido e, caso contrário, maxVal = (1<< BitDepth)-1, BitDepth correspondendo a um valor de profundidade de bit.
[00504] 23. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação de modelo de remodelagem aplicável para remodelagem em laço (ILR) de algumas das uma ou mais regiões de vídeo, em que a informação de modelo de remodelagem provê informação para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um
103 / 109 segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que a informação de modelo de remodelagem compreende um conjunto de parâmetro que inclui uma quantidade pivô restrita de maneira tal que Pivot[ i ]<=T.
[00505] 24. O método da cláusula 23, em que T é calculado como T = (1<< BitDepth)-1, em que BitDepth corresponde ao valor de profundidade de bit.
[00506] 25. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação aplicável para uma remodelagem em laço (ILR) e provê parâmetros para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que um parâmetro de quantização (QP) de croma tem um deslocamento cujo valor é derivado para cada bloco ou unidade de transformação.
[00507] 26. O método da cláusula 25, em que o deslocamento é derivado com base em um valor de luma representativo (repLumaVal).
[00508] 27. O método da cláusula 26, em que o valor de luma representativo é derivado usando uma parcial ou todos os valores de previsão de luma de um bloco ou uma unidade de transformação.
[00509] 28. O método da cláusula 26, em que o valor de luma representativo é derivado usando uma parcial ou todos os valores reconstruídos de luma de um bloco ou uma unidade de transformação.
[00510] 29. O método da cláusula 26, em que o valor de luma representativo é derivado como média da parcial ou de todos os valores de previsão de luma ou valores reconstruídos de luma de um bloco ou uma unidade de transformação.
104 / 109
[00511] 30. O método da cláusula 26, em que ReshapePivot[ idx ] <= repLumaVal < ReshapePivot[ idx + 1 ], e InvScaleCoeff[ idx ] é usado para derivar o deslocamento.
[00512] 31. O método da cláusula 30, em que um deslocamento de QP de luma é selecionado como argmin abs (2^(x/6 + shiftY) - InvScaleCoeff[ idx ]), x = -N…, M, e N e M sendo números inteiros.
[00513] 32. O método da cláusula 30, em que um deslocamento de QP de luma é selecionado como argmin abs (1 - (2^(x/6 + shiftY) / InvScaleCoeff[ idx ])), x = -N…, M, e N e M sendo números inteiros.
[00514] 33. O método da cláusula 30, em que, para diferentes valores de InvScaleCoeff[ idx ], o deslocamento é pré-calculado e armazenado em uma tabela de consulta.
[00515] 34. Um método de processamento de vídeo, compreendendo: realizar uma conversão entre uma representação de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, em que a representação codificada inclui informação aplicável para uma remodelagem em laço (ILR) e provê parâmetros para uma reconstrução de uma unidade de vídeo de uma região de vídeo com base em uma representação em um primeiro domínio e um segundo domínio e/ou escala do resíduo de croma de uma unidade de vídeo de croma, e em que um parâmetro de quantização (QP) de luma tem um deslocamento cujo valor é derivado para cada bloco ou unidade de transformação.
[00516] 35. O método da cláusula 34, em que o deslocamento é derivado com base em um valor de luma representativo (repLumaVal).
[00517] 36. O método da cláusula 35, em que o valor de luma representativo é derivado usando uma parcial ou todos os valores de previsão de luma de um bloco ou uma unidade de transformação.
[00518] 37. O método da cláusula 35, em que o valor de luma representativo é derivado como média da parcial ou de todos os valores de
105 / 109 previsão de luma de um bloco ou uma unidade de transformação.
[00519] 38. O método da cláusula 35, em que idx = repLumaVal / OrgCW, e InvScaleCoeff[ idx ] é usado para derivar o deslocamento.
[00520] 39. O método da cláusula 38, em que o deslocamento é selecionado como argmin abs (2^(x/6 + shiftY) - InvScaleCoeff[ idx ]), x = - N…, M, e N e M sendo números inteiros.
[00521] 40. O método da cláusula 38, em que o deslocamento é selecionado como argmin abs (1 - (2^(x/6 + shiftY) / InvScaleCoeff[ idx ])), x = -N…, M, e N e M sendo números inteiros.
[00522] 41. O método da cláusula 38, em que, para diferentes valores de InvScaleCoeff[ idx ], o deslocamento é pré-calculado e armazenado em uma tabela de consulta.
[00523] 42. O método de qualquer uma das cláusulas 1 a 41, em que a realização da conversão inclui gerar o vídeo a partir da representação codificada.
[00524] 43. 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, mediante execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 42.
[00525] 44. 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 42.
[00526] As soluções, os exemplos, as modalidades, os módulos e as operações funcionais descritos e ainda outros, descritos neste documento, podem ser implementados em conjunto de circuitos eletrônico digital, ou em software de computador, software embarcado, ou hardware, incluindo as estruturas descritas neste documento e seus equivalentes estruturais, ou em combinações de um ou mais dos mesmos. As modalidades descritas e ainda
106 / 109 outras podem ser implementadas como um ou mais produtos de programa de computador, isto é, um ou mais módulos de instruções de programa de computador codificadas em uma mídia legível por computador para execução pelo, ou para controlar a operação do, aparelho de processamento de dados. A mídia legível por computador pode ser um dispositivo de armazenamento legível por máquina, um substrato armazenamento legível por máquina, um dispositivo de memória, uma composição de matéria que efetua um sinal propagado legível por máquina, ou uma combinação de um ou mais dos mesmos. 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, código que cria um ambiente de execução para o programa de computador em questão, por exemplo, código que constitui software embarcado no processador, uma pilha de protocolo, um sistema de gerenciamento de base de dados, um sistema operacional, ou uma combinação de um ou mais dos mesmos. Um sinal propagado é um sinal artificialmente gerado, por exemplo, um sinal elétrico, óptico, ou eletromagnético gerado por máquina, que é gerado para codificar informação para transmissão para aparelho receptor adequado.
[00527] Um programa de computador (também conhecido como um programa, um software, uma aplicação de software, um script, ou um código) pode ser gravado em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, e o mesmo pode ser implementado 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 necessariamente corresponde a um arquivo em um sistema de arquivos. Um programa pode ser armazenado em uma parte de um arquivo que mantém outros programas ou
107 / 109 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 partes de código). Um programa de computador pode ser implementado para ser executado em um computador ou em múltiplos computadores que ficam localizado em um local ou distribuídos através de múltiplos locais e interconectados por uma rede de comunicação.
[00528] Os processos e fluxos lógicos descritos neste documento podem ser realizados por um ou mais processadores programáveis que executam um ou mais programas de computador para realizar funções pela operação em dados de entrada e geração de saída. Os processos e fluxos lógicos também podem ser realizados pelo, e o aparelho também pode ser implementado como, conjunto de circuitos lógico de propósito especial, por exemplo, um FPGA (arranjo de porta programável no campo) ou um ASIC (circuito integrado específico de aplicação).
[00529] Os processadores adequados para a execução de um programa de computador incluem, a título de exemplo, microprocessadores de propósito tanto geral quanto especial, e qualquer um ou mais processadores de qualquer tipo de computador digital. No geral, um processador irá receber instruções e dados a partir de uma memória exclusiva de leitura ou uma memória de acesso aleatório ou ambas. Os elementos essenciais de um computador são um processador para realizar instruções e um ou mais dispositivos de memórias para armazenar instruções e dados. No geral, um computador também irá incluir, ou ser operativamente acoplado para receber dados a partir de ou transferir dados para, ou ambos, um ou mais dispositivos de armazenamento em massa para armazenar dados, por exemplo, discos magnéticos, discos magneto ópticos, ou discos ópticos. Entretanto, um computador não precisa ter tais dispositivos. A mídia legível por computador
108 / 109 adequada para armazenar instruções de programa de computador e dados inclui todas as formas de memória não volátil, mídia e dispositivos de memórias, incluindo, a título de exemplo, dispositivos de memória semicondutora, por exemplo, EPROM, EEPROM, e dispositivos de memória flash; discos magnéticos, por exemplo, discos rígidos internos ou discos removíveis; discos magneto ópticos; e discos CD ROM e DVD-ROM. O processador e a memória podem ser complementados por, ou incorporados no, conjunto de circuitos lógico de propósito especial.
[00530] Embora este documento patentário contenha muitas especificidades, as mesmas não devem ser interpretadas como limitações no escopo de qualquer matéria ou do que pode ser reivindicado, mas, em vez disto, como descrições das características que podem ser específicas de modalidades em particular de técnicas em particular. Certas características que são descritas neste documento patentário no contexto de modalidades separadas também podem ser implementadas em combinação em uma única modalidade. Inversamente, várias características que são descritas no contexto de uma única modalidade também podem ser implementadas em múltiplas modalidades separadamente ou em qualquer subcombinação adequada. Além do mais, embora características possam ser supradescritas como agindo em certas combinações e até mesmo inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada podem, em alguns casos, ser excisadas da combinação, e a combinação reivindicada pode ser direcionada para uma subcombinação ou uma variação de uma subcombinação.
[00531] Similarmente, embora operações sejam representadas nos desenhos em uma ordem em particular, isto não deve ser entendido como exigindo que tais operações sejam realizadas na ordem em particular mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam realizadas, para alcançar resultados desejáveis. Além do mais, a separação de
109 / 109 vários componentes do sistema nas modalidades descritas neste documento patentário não deve ser entendida como exigindo tal separação em todas as modalidades.
[00532] Apenas uns poucos exemplos e implementações são descritos e outras implementações, intensificações e variações podem ser feitas com base no que é descrito e ilustrado neste documento patentário.

Claims (1)

  1. REIVINDICAÇÕES
    1. Método para processamento de dados de vídeo, caracterizado pelo fato de que compreende: determinar, durante uma conversão entre uma unidade de vídeo atual de uma região de vídeo de um vídeo e um fluxo de bits do vídeo, que uma ferramenta de codificação é usada para a unidade de vídeo atual; realizar a conversão usando a ferramenta de codificação durante a conversão, na qual a unidade de vídeo atual é construída com base em pelo menos um de: 1) um processo de mapeamento direto para um componente de luma da unidade de vídeo atual, no qual as amostras de predição do componente de luma são convertidas de um domínio original para um domínio remodelado; 2) um processo de mapeamento inverso, que é uma operação inversa do processo de mapeamento direto, no qual as amostras reconstruídas do componente de luma da unidade de vídeo atual no domínio remodelado são convertidas para o domínio original; ou 3) um processo de escala, no qual amostras residuais de um componente de croma da unidade de vídeo atual são escaladas antes de serem usadas para reconstruir o componente de croma, e em que a informação do modelo da ferramenta de codificação para a unidade de vídeo atual está incluída no fluxo de bits, e em que, em resposta à região de vídeo que compreende uma ou mais unidades de vídeo, incluindo a unidade de vídeo atual, cada uma das uma ou mais unidades de vídeo compartilham a mesma informação do modelo da ferramenta de codificação para a unidade de vídeo atual.
    2. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a uma ou mais unidades de vídeo correspondem a uma ou mais fatias, um ou mais grupos lado a lado, uma ou mais unidades de árvore de codificação ou uma ou mais unidades de codificação.
    3. Método de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a região de vídeo é uma imagem.
    4. Método de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que um modelo da ferramenta de codificação inclui um modelo linear por partes que é usado para mapear as amostras de predição do componente de luma da unidade de vídeo atual em valores particulares durante o processo de mapeamento direto.
    5. Método de acordo com a reivindicação 4, caracterizado pelo fato de que um valor de pelo menos uma variável do modelo linear por partes é dependente de uma profundidade de bits do vídeo.
    6. Método de acordo com a reivindicação 4 ou 5, caracterizado pelo fato de que uma faixa de um valor de uma palavra de código para um i- ésimo por partes do modelo linear por partes é dependente de uma profundidade de bits do vídeo, e a palavra de código para o i-ésimo por partes é associado aos valores particulares.
    7. Método de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que a informação do modelo da ferramenta de codificação para a unidade de vídeo atual compreende um primeiro elemento de sintaxe e um segundo elemento de sintaxe, o primeiro elemento de sintaxe especificando uma diferença entre um índice bin máximo permitido e um índice bin máximo a ser usado no processo de mapeamento direto e o segundo elemento de sintaxe especificando um índice bin mínimo a ser usado no processo de mapeamento direto.
    8. Método de acordo com a reivindicação 7, caracterizado pelo fato de que um valor do primeiro elemento de sintaxe está em uma faixa de 0 até o índice bin máximo permitido.
    9. Método de acordo com a reivindicação 7 ou 8, caracterizado pelo fato de que um valor do segundo elemento de sintaxe é menor ou igual ao índice bin máximo a ser usado no processo de mapeamento direto.
    10. Método de acordo com qualquer uma das reivindicações 7 a 9, caracterizado pelo fato de que um valor do segundo elemento de sintaxe está em uma faixa de 0 até o índice bin máximo a ser usado no processo de mapeamento direto.
    11. Método de acordo com qualquer uma das reivindicações 7 a 10, caracterizado pelo fato de que o índice bin máximo permitido é igual a
    15.
    12. Método de acordo com qualquer uma das reivindicações 1 a 11, caracterizado pelo fato de que um processo de filtragem é aplicado nas amostras reconstruídas convertidas no domínio original geradas no processo de mapeamento inverso.
    13. Método de acordo com qualquer uma das reivindicações 6 a 12, caracterizado pelo fato de que o valor da palavra de código para o i- ésimo por partes é determinado com base na informação do modelo da ferramenta de codificação para a unidade de vídeo atual.
    14. Método de acordo com qualquer uma das reivindicações 1 a 13, caracterizado pelo fato de que um indicador de uso da ferramenta de codificação está incluído em um conjunto de parâmetros de sequência.
    15. Método de acordo com qualquer uma das reivindicações 1 a 14, caracterizado pelo fato de que a conversão inclui codificar o bloco de vídeo atual no fluxo de bits.
    16. Método de acordo com qualquer uma das reivindicações 1 a 14, caracterizado pelo fato de que a conversão inclui decodificar o bloco de vídeo atual a partir do fluxo de bits.
    17. Aparelho para processamento de 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 com que o processador:
    determine, durante uma conversão entre uma unidade de vídeo atual de uma região de vídeo de um vídeo e um fluxo de bits do vídeo, que uma ferramenta de codificação seja usada para a unidade de vídeo atual; realize a conversão usando a ferramenta de codificação durante a conversão, na qual a unidade de vídeo atual é construída com base em pelo menos um de: 1) um processo de mapeamento direto para um componente de luma da unidade de vídeo atual, no qual as amostras de predição do componente de luma são convertidas de um domínio original para um domínio remodelado; 2) um processo de mapeamento inverso, que é uma operação inversa do processo de mapeamento direto, no qual as amostras reconstruídas do componente de luma da unidade de vídeo atual no domínio remodelado são convertidas para o domínio original; ou 3) um processo de escala, no qual amostras residuais de um componente de croma da unidade de vídeo atual são escaladas antes de serem usadas para reconstruir o componente de croma, e em que a informação do modelo da ferramenta de codificação para a unidade de vídeo atual está incluída no fluxo de bits, e em que, em resposta à região de vídeo que compreende uma ou mais unidades de vídeo, incluindo a unidade de vídeo atual, cada uma das uma ou mais unidades de vídeo compartilham a mesma informação do modelo da ferramenta de codificação para a unidade de vídeo atual.
    18. Meio de armazenamento legível por computador não transitório, caracterizado pelo fato de que armazena instruções que fazem com que um processador: determine, durante uma conversão entre uma unidade de vídeo atual de uma região de vídeo de um vídeo e um fluxo de bits do vídeo, que uma ferramenta de codificação seja usada para a unidade de vídeo atual;
    realize a conversão usando a ferramenta de codificação durante a conversão, na qual a unidade de vídeo atual é construída com base em pelo menos um de: 1) um processo de mapeamento direto para um componente de luma da unidade de vídeo atual, no qual as amostras de predição do componente de luma são convertidas de um domínio original para um domínio remodelado; 2) um processo de mapeamento inverso, que é uma operação inversa do processo de mapeamento direto, no qual as amostras reconstruídas do componente de luma da unidade de vídeo atual no domínio remodelado são convertidas para o domínio original; ou 3) um processo de escala, no qual amostras residuais de um componente de croma da unidade de vídeo atual são escaladas antes de serem usadas para reconstruir o componente de croma, e em que a informação do modelo da ferramenta de codificação para a unidade de vídeo atual está incluída no fluxo de bits, e em que, em resposta à região de vídeo que compreende uma ou mais unidades de vídeo, incluindo a unidade de vídeo atual, cada uma das uma ou mais unidades de vídeo compartilham a mesma informação do modelo da ferramenta de codificação para a unidade de vídeo atual.
    19. Meio de gravação legível por computador não transitório, caracterizado pelo fato de que armazena um fluxo de bits de um vídeo que é gerado por um método realizado por um aparelho para processamento de vídeo, em que o método compreende: determinar que uma ferramenta de codificação seja usada para a unidade de vídeo atual; gerar o fluxo de bits usando a ferramenta de codificação, na qual a unidade de vídeo atual é construída com base em pelo menos um de: 1) um processo de mapeamento direto para um componente de luma da unidade de vídeo atual, no qual as amostras de predição do componente de luma são convertidas de um domínio original para um domínio remodelado; 2) um processo de mapeamento inverso, que é uma operação inversa do processo de mapeamento direto, no qual as amostras reconstruídas do componente de luma da unidade de vídeo atual no domínio remodelado são convertidas para o domínio original; ou 3) um processo de escala, no qual amostras residuais de um componente de croma da unidade de vídeo atual são escaladas antes de serem usadas para reconstruir o componente de croma, e em que a informação do modelo da ferramenta de codificação para a unidade de vídeo atual está incluída no fluxo de bits, e em que, em resposta à região de vídeo que compreende uma ou mais unidades de vídeo, incluindo a unidade de vídeo atual, cada uma das uma ou mais unidades de vídeo compartilham a mesma informação do modelo da ferramenta de codificação para a unidade de vídeo atual.
    derivação de candidatos inicial derivação de candidatos espaciais derivação de candidatos temporais
    Petição 870210077549, de 23/08/2021, pág. 125/167 verificação de redundância para candidatos espaciais inserção de candidatos adicionais 1/33 criação de candidatos bipreditivos inserção de candidatos de movimento zero lista de candidatos de mescla final processo de derivação para construção de lista de candidatos a mescla posições de candidatos a mescla espaciais
    Petição 870210077549, de 23/08/2021, pág. 127/167 3/33 pares de candidatos considerados para verificação de redundância dos candidatos a mescla espacial
    Petição 870210077549, de 23/08/2021, pág. 128/167 PU atual
    PU atual 4/33 posições para segunda PU das posições N x 2N e 2N x N segunda PU de N x 2N segunda PU de N x 2N
    Petição 870210077549, de 23/08/2021, pág. 129/167 5/33 ilustração da escala do vetor de movimento para candidato a mescla temporal
    Petição 870210077549, de 23/08/2021, pág. 130/167 6/33 posições candidatas para candidato a mescla temporal, C0 e C1
    Petição 870210077549, de 23/08/2021, pág. 131/167 lista de candidatos a mescla original lista de candidatos a mescla depois da adição de candidatos combinados combinar combinar 7/33 exemplo de candidato a mescla bipreditivo combinado para cada lista da figura de referência com refidx como uma entrada
    Petição 870210077549, de 23/08/2021, pág. 132/167 posições candidatas espaciais (5) posições candidatas temporais (2)
    selecionar 2 candidatos selecionar 1 candidato remover candidatos a MV duplicados adicionar candidatos a MV zero 8/33 remover candidatos a MV cujo índice é maior do que 1 candidatos a vetor de movimento final (2)
    processo de derivação para candidatos a previsão do vetor de movimento
    Petição 870210077549, de 23/08/2021, pág. 133/167 9/33 ilustração da escala do vetor de movimento para candidato a vetor de movimento espacial
    Petição 870210077549, de 23/08/2021, pág. 134/167 PU atual dividida bloco correspondente na em N x N sub-PUs figura origem de movimento um bloco correspondente N x N (grade de movimento alinhada)
    um bloco central representativo 10/33 previsão de movimento ATMVP para uma CU
    Petição 870210077549, de 23/08/2021, pág. 135/167 11/33 exemplo de uma CU com quatro sub-blocos (A-D) e seus blocos vizinhos (a-d)
    Petição 870210077549, de 23/08/2021, pág. 136/167 CU atual bloco de referência 12/33 amostras vizinhas da CU atual amostras vizinhas do bloco de referência amostras vizinhas usadas para derivar parâmetros IC
    Petição 870210077549, de 23/08/2021, pág. 137/167 13/33 figura de referência figura atual figura de referência figura atual afim de 6 parâmetros afim de 4 parâmetros exemplo de MVF afim por sub-bloco modelo afim de 6 parâmetros modelo afim de 4 parâmetros
    MVP para AF_INTER para candidatos afins herdados
    Petição 870210077549, de 23/08/2021, pág. 141/167 bloco atual 17/33
    MVP para AF_INTER para candidatos afins construídos
    Petição 870210077549, de 23/08/2021, pág. 142/167 derivar atual bloco atual afim codificado 18/33 candidatos para AF_MERGE cinco blocos vizinhos derivação do previsor CPMV
    Petição 870210077549, de 23/08/2021, pág. 143/167 bloco atual 19/33 posição de candidatos para modo de mescla afim referência L0 quadro atual referência L1
    Petição 870210077549, de 23/08/2021, pág. 144/167 bloco atual 20/33 processo de busca UMVE referência L1 ponto de busca UMVE referência L0 biprevisão como gabarito bilateral etapa 1: gerar gabarito bilateral a partir dos blocos de previsão referidos pelo MV0 e MV1 iniciais etapa 2: gabarito bilateral correspondente para verificar os melhores blocos correspondidos referidos pelo MV0’
    Petição 870210077549, de 23/08/2021, pág. 146/167 e MV1’ atualizados etapa 1 etapa 2 etapa 1 etapa 2 22/33 bloco atual bloco de referência bloco de referência em list1 em list0
    DMVR com base na correspondência de gabarito bilateral
    Petição 870210077549, de 23/08/2021, pág. 147/167 reconstrução remodelagem inversa modo intra intraprevisão remodelagem direta compensação modo inter 23/33 de movimento fluxograma do fluxo de decodificação com remodelagem amostras vizinhas utilizadas no filtro bilateral janela associada
    Petição 870210077549, de 23/08/2021, pág. 149/167 com a amostra P0,0 janela associada com a amostra P2,0 25/33 janelas cobrindo duas amostras utilizadas no cálculo do peso
    Petição 870210077549, de 23/08/2021, pág. 150/167 26/33 padrão de escaneamento A – pixel atual, BCD – pixels nas cercanias
    Petição 870210077549, de 23/08/2021, pág. 151/167 conjunto de circuitos processador de processamento de vídeo 27/33 memória
    Petição 870210077549, de 23/08/2021, pág. 153/167 determinar, para uma conversão entre múltiplas unidades de vídeo de uma região de vídeo de um vídeo e uma representação codificada das múltiplas unidades de vídeo, a informação do modelo de remodelagem que é comumente compartilhada pelas múltiplas unidades de vídeo 29/33 realizar uma conversão entre uma representação codificada do vídeo e o vídeo
    Petição 870210077549, de 23/08/2021, pág. 154/167 determinar, para uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, um valor de uma variável na informação do modelo de remodelagem em função de uma profundidade de bit do vídeo 30/33 realizar a conversão com base na determinação
    Petição 870210077549, de 23/08/2021, pág. 155/167 determinar, para uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo, se habilita-se ou desabilita-se uma remodelagem em laço (ILR) 31/33 realizar a conversão com base na determinação
    Petição 870210077549, de 23/08/2021, pág. 156/167 determinar, para uma conversão entre uma primeira região de vídeo de um vídeo e uma representação codificada da primeira região de vídeo, se informação de remodelagem proveniente de uma segunda região de vídeo é usável para a conversão com base em uma regra 32/33 realizar a conversão com base na determinação
    Petição 870210077549, de 23/08/2021, pág. 157/167 realizar uma conversão entre uma representação codificada de um vídeo compreendendo uma ou mais regiões de vídeo e o vídeo 33/33
BR112021016689-0A 2019-03-08 2020-03-09 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 BR112021016689A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019077429 2019-03-08
CNPCT/CN2019/077429 2019-03-08
PCT/CN2020/078388 WO2020182092A1 (en) 2019-03-08 2020-03-09 Constraints on model-based reshaping in video processing

Publications (1)

Publication Number Publication Date
BR112021016689A2 true BR112021016689A2 (pt) 2021-10-13

Family

ID=72427691

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021016689-0A BR112021016689A2 (pt) 2019-03-08 2020-03-09 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

Country Status (12)

Country Link
US (3) US11284084B1 (pt)
EP (2) EP3912343A4 (pt)
JP (3) JP7203241B2 (pt)
KR (2) KR102639936B1 (pt)
CN (4) CN113545044A (pt)
AU (1) AU2020235190B2 (pt)
BR (1) BR112021016689A2 (pt)
CA (1) CA3131286A1 (pt)
MX (1) MX2021010498A (pt)
SG (1) SG11202109150QA (pt)
WO (3) WO2020182093A1 (pt)
ZA (1) ZA202106351B (pt)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020180143A1 (ko) * 2019-03-07 2020-09-10 엘지전자 주식회사 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
KR102639936B1 (ko) 2019-03-08 2024-02-22 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 처리에서 모델-기반 변형에 대한 제약들
CA3135968C (en) 2019-04-18 2024-05-14 Beijing Bytedance Network Technology Co., Ltd. Restriction on applicability of cross component mode
JP7317991B2 (ja) 2019-04-23 2023-07-31 北京字節跳動網絡技術有限公司 クロスコンポーネント依存性を低減するための方法
WO2020224629A1 (en) 2019-05-08 2020-11-12 Beijing Bytedance Network Technology Co., Ltd. Conditions for applicability of cross-component coding
US11388406B2 (en) * 2019-05-20 2022-07-12 Dolby Laboratories Licensing Corporation Piece-wise-linear mapping for in-loop reshaping in image coding
JP7418478B2 (ja) 2019-06-22 2024-01-19 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのためのシンタックス要素
CN117395396A (zh) 2019-07-07 2024-01-12 北京字节跳动网络技术有限公司 色度残差缩放的信令通知
CN117336482A (zh) 2019-08-20 2024-01-02 北京字节跳动网络技术有限公司 变换跳过模式的信令通知
EP4128770A4 (en) * 2020-03-27 2024-04-10 Beijing Dajia Internet Information Tech Co Ltd METHODS AND DEVICES FOR PREDICTION-DEPENDENT RESIDUAL SCALING FOR VIDEO CODING
US20240096486A1 (en) 2020-12-15 2024-03-21 Feeltect Limited System and method for monitoring wound therapy

Family Cites Families (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5281752B2 (ja) 2007-02-28 2013-09-04 日本無機株式会社 フィルタパック及びそれを用いたエアフィルタ
EP2051524A1 (en) 2007-10-15 2009-04-22 Panasonic Corporation Image enhancement considering the prediction error
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
WO2011126272A2 (en) * 2010-04-05 2011-10-13 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
KR101500914B1 (ko) 2010-04-09 2015-03-10 미쓰비시덴키 가부시키가이샤 동화상 복호 장치
CN105120287B (zh) 2010-04-13 2019-05-17 Ge 视频压缩有限责任公司 解码器、编码器以及用于解码和编码的方法
CN103238320B (zh) 2010-09-30 2016-06-01 三星电子株式会社 通过使用平滑插值滤波器对图像进行插值的方法和装置
WO2012090504A1 (en) 2010-12-28 2012-07-05 Panasonic Corporation Methods and apparatuses for coding and decoding video stream
WO2012175003A1 (en) 2011-06-20 2012-12-27 Mediatek Singapore Pte. Ltd. Method and apparatus of chroma intra prediction with reduced line memory
KR20130058524A (ko) 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
JP5375938B2 (ja) 2011-12-14 2013-12-25 ソニー株式会社 復号装置及び方法
CN103227917B (zh) 2012-01-31 2016-12-14 华为技术有限公司 解码方法和装置
US9503702B2 (en) * 2012-04-13 2016-11-22 Qualcomm Incorporated View synthesis mode for three-dimensional video coding
CN104471940B (zh) 2012-04-16 2017-12-15 联发科技(新加坡)私人有限公司 色度帧内预测方法及装置
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
CN114786016A (zh) 2012-07-02 2022-07-22 韩国电子通信研究院 图像编码/解码方法和非暂时性计算机可读记录介质
US9854259B2 (en) 2012-07-09 2017-12-26 Qualcomm Incorporated Smoothing of difference reference picture
US9350899B2 (en) 2012-09-14 2016-05-24 Qualcomm Incorporated Methods and device for efficient resampling and resizing of digital images
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
GB2513111A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US9503733B2 (en) 2013-04-10 2016-11-22 ARRIS Enterprises, LLC Re-sampling with phase offset adjustment for luma and chroma to signal adaptive filters in scalable video coding
EP2843949B1 (en) 2013-06-28 2020-04-29 Velos Media International Limited Methods and devices for emulating low-fidelity coding in a high-fidelity coder
US9648330B2 (en) * 2013-07-15 2017-05-09 Qualcomm Incorporated Inter-color component residual prediction
MY178305A (en) 2013-10-11 2020-10-07 Vid Scale Inc High level syntax for hevc extensions
US9648332B2 (en) 2013-10-28 2017-05-09 Qualcomm Incorporated Adaptive inter-color component residual prediction
US10397607B2 (en) 2013-11-01 2019-08-27 Qualcomm Incorporated Color residual prediction for video coding
WO2015100522A1 (en) 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
CN106464890A (zh) 2014-03-14 2017-02-22 三星电子株式会社 可伸缩视频编码/解码方法和设备
US10271052B2 (en) * 2014-03-14 2019-04-23 Qualcomm Incorporated Universal color-space inverse transform coding
US9930348B2 (en) * 2014-03-14 2018-03-27 Qualcomm Incorporated Coefficient level coding in a video coding process
US10142642B2 (en) 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
US20150373343A1 (en) 2014-06-20 2015-12-24 Qualcomm Incorporated Representation format update in multi-layer codecs
US10200700B2 (en) * 2014-06-20 2019-02-05 Qualcomm Incorporated Cross-component prediction in video coding
CN107079157B (zh) 2014-09-12 2020-12-22 Vid拓展公司 用于视频编码的分量间去相关
US9918105B2 (en) * 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
KR20200051831A (ko) 2014-10-28 2020-05-13 미디어텍 싱가폴 피티이. 엘티디. 비디오 코딩을 위한 가이드된 크로스-컴포넌트 예측 방법
US9998742B2 (en) 2015-01-27 2018-06-12 Qualcomm Incorporated Adaptive cross component residual prediction
GB2543429B (en) * 2015-02-19 2017-09-27 Magic Pony Tech Ltd Machine learning for visual processing
GB201603144D0 (en) * 2016-02-23 2016-04-06 Magic Pony Technology Ltd Training end-to-end video processes
WO2016164235A1 (en) * 2015-04-06 2016-10-13 Dolby Laboratories Licensing Corporation In-loop block-based image reshaping in high dynamic range video coding
US20180167615A1 (en) 2015-06-07 2018-06-14 Sharp Kabushiki Kaisha Systems and methods for optimizing video coding based on a luminance transfer function or video color component values
WO2017019818A1 (en) 2015-07-28 2017-02-02 Vid Scale, Inc. High dynamic range video coding architectures with multiple operating modes
WO2017053432A1 (en) 2015-09-21 2017-03-30 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
JP2017538381A (ja) 2015-10-09 2017-12-21 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオ符号化における成分間予測
US20170150186A1 (en) 2015-11-25 2017-05-25 Qualcomm Incorporated Flexible transform tree structure in video coding
CN109076225A (zh) * 2016-02-08 2018-12-21 夏普株式会社 用于变换系数编码的系统和方法
GB2548358A (en) * 2016-03-15 2017-09-20 Nokia Technologies Oy A method, an apparatus and a computer program product for coding a 360-degree panoramic images and video
WO2017165494A2 (en) * 2016-03-23 2017-09-28 Dolby Laboratories Licensing Corporation Encoding and decoding reversible production-quality single-layer video signals
CN109417620B (zh) 2016-03-25 2021-04-27 松下知识产权经营株式会社 用于使用信号依赖型自适应量化将运动图像编码及解码的方法及装置
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
CN109155853B (zh) 2016-05-19 2023-03-28 杜比实验室特许公司 用于高动态范围图像的色度整形
JP6846442B2 (ja) 2016-05-19 2021-03-24 ドルビー ラボラトリーズ ライセンシング コーポレイション ハイダイナミックレンジ画像のためのクロマ再構成
EP3449630A4 (en) 2016-05-28 2019-11-27 MediaTek Inc. METHOD AND APPARATUS FOR CURRENT IMAGE REFERENCING FOR VIDEO CODING
US10484712B2 (en) 2016-06-08 2019-11-19 Qualcomm Incorporated Implicit coding of reference line index used in intra prediction
EP3488610A4 (en) 2016-07-22 2019-07-17 Sharp Kabushiki Kaisha SYSTEMS AND METHOD FOR CODING VIDEO DATA BY ADAPTIVE COMPONENT CALING
US10390015B2 (en) 2016-08-26 2019-08-20 Qualcomm Incorporated Unification of parameters derivation procedures for local illumination compensation and cross-component linear model prediction
US10419757B2 (en) 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
EP3510772B1 (en) * 2016-09-09 2020-12-09 Dolby Laboratories Licensing Corporation Coding of high dynamic range video using segment-based reshaping
JP2018056685A (ja) 2016-09-27 2018-04-05 株式会社ドワンゴ 画像符号化装置、画像符号化方法、及び画像符号化プログラム、並びに、画像復号装置、画像復号方法、及び画像復号プログラム
WO2018066849A1 (ko) 2016-10-04 2018-04-12 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US10477240B2 (en) 2016-12-19 2019-11-12 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding
US20180199062A1 (en) 2017-01-11 2018-07-12 Qualcomm Incorporated Intra prediction techniques for video coding
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
EP3386198A1 (en) 2017-04-07 2018-10-10 Thomson Licensing Method and device for predictive picture encoding and decoding
WO2018236031A1 (ko) 2017-06-21 2018-12-27 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
JP7164535B2 (ja) * 2017-06-29 2022-11-01 ドルビー ラボラトリーズ ライセンシング コーポレイション 統合された画像再構成及び映像符号化
EP3425911A1 (en) * 2017-07-06 2019-01-09 Thomson Licensing A method and a device for picture encoding and decoding
US11070824B2 (en) 2017-09-15 2021-07-20 Sony Corporation Image processing device and method
JP2021010046A (ja) 2017-10-06 2021-01-28 シャープ株式会社 画像符号化装置及び画像復号装置
US20190116376A1 (en) 2017-10-12 2019-04-18 Qualcomm Incorporated Motion vector predictors using affine motion model in video coding
EP3753253A1 (en) 2018-02-14 2020-12-23 Dolby Laboratories Licensing Corporation Image reshaping in video coding using rate distortion optimization
US11190790B2 (en) 2018-04-01 2021-11-30 Lg Electronics Inc. Parallel processing method for color component of video signal, and device therefor
CN109005408B (zh) 2018-08-01 2020-05-29 北京奇艺世纪科技有限公司 一种帧内预测方法、装置及电子设备
GB2590844B (en) 2018-08-17 2023-05-03 Beijing Bytedance Network Tech Co Ltd Simplified cross component prediction
TWI820212B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 單行交叉分量線性模型預測模式
CN111357294B (zh) 2018-10-23 2022-12-30 北京字节跳动网络技术有限公司 基于子块的运动信息列表的简化熵编解码
JP7231727B2 (ja) 2018-11-05 2023-03-01 北京字節跳動網絡技術有限公司 精緻化を伴うインター予測のための補間
CN113039791B (zh) 2018-11-06 2024-02-23 北京字节跳动网络技术有限公司 帧内预测的参数推导中的复杂度降低
EP3871415A4 (en) 2018-12-07 2022-04-13 Beijing Bytedance Network Technology Co., Ltd. CONTEXT-BASED INTRAPREDICTION
CN113273213A (zh) 2018-12-31 2021-08-17 韩国电子通信研究院 图像编码/解码方法和设备以及存储比特流的记录介质
WO2020156528A1 (en) * 2019-02-01 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Filtering processes based on in-loop reshaping
EP3928519B1 (en) 2019-02-22 2024-04-03 Huawei Technologies Co., Ltd. Method and apparatus for affine based inter prediction of chroma subblocks
AU2020226565C1 (en) 2019-02-22 2024-01-11 Beijing Bytedance Network Technology Co., Ltd. Neighbouring sample selection for intra prediction
KR102472756B1 (ko) 2019-02-24 2022-12-01 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측을 위한 파라미터 유도
KR20210130153A (ko) 2019-02-28 2021-10-29 인터디지털 브이씨 홀딩스 인코포레이티드 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스
EP3703366A1 (en) 2019-02-28 2020-09-02 InterDigital VC Holdings, Inc. Method and device for picture encoding and decoding
CN113519157B (zh) 2019-03-04 2023-12-26 北京字节跳动网络技术有限公司 视频处理中滤波信息的两级信令
JP2022523925A (ja) * 2019-03-04 2022-04-27 アリババ グループ ホウルディング リミテッド 映像コンテンツを処理するための方法及びシステム
US20200288159A1 (en) 2019-03-08 2020-09-10 Qualcomm Incorporated Combined residual coding in video coding
US20200288126A1 (en) 2019-03-08 2020-09-10 Qualcomm Incorporated Reshaping filter average calculation for video coding
KR102639936B1 (ko) 2019-03-08 2024-02-22 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 처리에서 모델-기반 변형에 대한 제약들
CN117499644A (zh) 2019-03-14 2024-02-02 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
EP3925217A4 (en) * 2019-03-25 2023-03-08 HFI Innovation Inc. METHOD AND DEVICE FOR QUANTIZATION MATRIX CALCULATION AND REPRESENTATION FOR VIDEO CODING
WO2020204413A1 (ko) 2019-04-03 2020-10-08 엘지전자 주식회사 복원 픽처를 수정하는 비디오 또는 영상 코딩
CA3135968C (en) 2019-04-18 2024-05-14 Beijing Bytedance Network Technology Co., Ltd. Restriction on applicability of cross component mode
EP3939260A4 (en) 2019-04-20 2022-07-06 Beijing Bytedance Network Technology Co., Ltd. SIGNALING OF SYNTAX ELEMENTS FOR CO-CODING OF CHROMINANCE RESIDUES
JP7317991B2 (ja) 2019-04-23 2023-07-31 北京字節跳動網絡技術有限公司 クロスコンポーネント依存性を低減するための方法
CN111866510A (zh) 2019-04-30 2020-10-30 华为技术有限公司 视频序列的帧内预测方法及装置
WO2020224629A1 (en) 2019-05-08 2020-11-12 Beijing Bytedance Network Technology Co., Ltd. Conditions for applicability of cross-component coding
US11930191B2 (en) 2019-05-16 2024-03-12 Lg Electronics Inc. Luma mapping—and chroma scaling-based video or image coding
US11388406B2 (en) * 2019-05-20 2022-07-12 Dolby Laboratories Licensing Corporation Piece-wise-linear mapping for in-loop reshaping in image coding
JP2021002780A (ja) 2019-06-21 2021-01-07 シャープ株式会社 動画像復号装置および動画像符号化装置
JP7418478B2 (ja) 2019-06-22 2024-01-19 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのためのシンタックス要素
CN117395396A (zh) 2019-07-07 2024-01-12 北京字节跳动网络技术有限公司 色度残差缩放的信令通知
CN117579816A (zh) 2019-07-11 2024-02-20 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的比特流一致性约束
US11601657B2 (en) * 2020-04-02 2023-03-07 Qualcomm Incorporated LUMA mapping with chroma scaling (LMCS) in video coding
WO2021201515A1 (ko) * 2020-04-02 2021-10-07 엘지전자 주식회사 Hls를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
US11375212B2 (en) 2020-04-18 2022-06-28 Qualcomm Incorporated Flexible chroma processing for dynamic range adjustment
JPWO2021256107A1 (pt) * 2020-06-15 2021-12-23
US20210400257A1 (en) * 2020-06-18 2021-12-23 Lg Electronics Inc. Image encoding/decoding method and apparatus for signaling high level information for tool control based on colour representation format, and computer-readable recording medium strong bitstream
EP4252418A4 (en) 2020-11-30 2024-05-22 Beijing Dajia Internet Information Tech Co Ltd CHROMACODING IMPROVEMENT WITH ADAPTIVE OFFSET OF CROSS-COMPONENT SAMPLES

Also Published As

Publication number Publication date
AU2020235190B2 (en) 2023-06-01
EP3912343A1 (en) 2021-11-24
ZA202106351B (en) 2023-11-29
SG11202109150QA (en) 2021-09-29
KR102639936B1 (ko) 2024-02-22
JP7277599B2 (ja) 2023-05-19
WO2020182091A1 (en) 2020-09-17
JP2022522772A (ja) 2022-04-20
CN113545070B (zh) 2023-10-03
AU2020235190A1 (en) 2021-09-16
CN113545044A (zh) 2021-10-22
US11910020B2 (en) 2024-02-20
US20230276075A1 (en) 2023-08-31
CN113545049A (zh) 2021-10-22
EP3918800A4 (en) 2022-07-06
EP3918800A1 (en) 2021-12-08
JP2023090865A (ja) 2023-06-29
KR20210134314A (ko) 2021-11-09
KR20210135502A (ko) 2021-11-15
CN113545070A (zh) 2021-10-22
US11284084B1 (en) 2022-03-22
CA3131286A1 (en) 2020-09-17
CN117119187A (zh) 2023-11-24
WO2020182093A1 (en) 2020-09-17
CN113545049B (zh) 2024-04-19
US20210321140A1 (en) 2021-10-14
JP7203241B2 (ja) 2023-01-12
WO2020182092A1 (en) 2020-09-17
JP2022522771A (ja) 2022-04-20
MX2021010498A (es) 2021-10-01
EP3912343A4 (en) 2022-07-20

Similar Documents

Publication Publication Date Title
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
JP7263529B2 (ja) デコーダ側精緻化ツールのサイズ選択アプリケーション
US20230164348A1 (en) Coding of block vectors for intra block copy-coded blocks
BR112021014620A2 (pt) Interações entre as ferramentas de intercodificação e de reformulação em malha
CN113906738B (zh) 仿射模式的自适应运动矢量差分辨率
CN114450959A (zh) 视频编解码中的几何分割模式
WO2020049538A1 (en) Calculating motion vector predictors
US20220303571A1 (en) Merge with motion vector differencing in affine mode