BR112021011427A2 - Método e aparelho de predição de bloco de croma - Google Patents

Método e aparelho de predição de bloco de croma Download PDF

Info

Publication number
BR112021011427A2
BR112021011427A2 BR112021011427-0A BR112021011427A BR112021011427A2 BR 112021011427 A2 BR112021011427 A2 BR 112021011427A2 BR 112021011427 A BR112021011427 A BR 112021011427A BR 112021011427 A2 BR112021011427 A2 BR 112021011427A2
Authority
BR
Brazil
Prior art keywords
value
difference
chroma
luma
target
Prior art date
Application number
BR112021011427-0A
Other languages
English (en)
Inventor
Xiang Ma
Jianle Chen
Haitao Yang
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112021011427A2 publication Critical patent/BR112021011427A2/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/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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)

Abstract

método e aparelho de predição de bloco de croma. este pedido fornece um método e aparelho de predição de bloco de croma, e pertence ao campo das tecnologias de vídeo. o método inclui: obter um valor de luma máximo e um valor de luma mínimo com base em amostras de luma correspondentes às amostras vizinhas de um bloco de croma alvo e, em seguida, calcular uma primeira diferença entre o valor de luma máximo e o valor de luma mínimo; se a primeira diferença for maior do que 0, processar a primeira diferença com base em uma quantidade de bits significativos da primeira diferença e uma primeira profundidade de bit bit-depth predefinida para obter uma segunda diferença; e então determinar, com base em um primeiro valor de croma, um segundo valor de croma, e a segunda diferença, um parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo, onde o primeiro valor de croma e o segundo valor de croma são determinados com base nas amostras vizinhas do bloco de croma alvo, e determinar informações de predição do bloco de croma alvo com base no parâmetro de modelo de intrapredição e informações de reconstrução de luma correspondentes ao bloco de croma alvo. este pedido pode melhorar eficiência de predição de um bloco de croma.

Description

MÉTODO E APARELHO DE PREDIÇÃO DE BLOCO DE CROMA
[001] Este pedido reivindica prioridade ao Pedido de Patente Chinês No. 201811527100.4 depositado em 13 de dezembro de 2018 e intitulado “MÉTODO E APARELHO DE PREDIÇÃO DE BLOCO DE CROMA”, que é incorporado aqui por referência em sua totalidade.
ANTECEDENTES
[002] Com o desenvolvimento das tecnologias de Internet, existem mais programas de aplicação de vídeo e existem requisitos crescentes para vídeos de alta definição nos programas de aplicação de vídeo. No entanto, como os vídeos de alta definição exigem uma quantidade comparativamente grande de dados, os vídeos de alta definição precisam ser codificados se precisarem ser transmitidos em largura de banda de rede limitada. Geralmente, processamento de codificação inclui principalmente intrapredição, interpredição, transformação, quantização, codificação de entropia, filtragem em loop, e semelhantes.
[003] Em uma tecnologia relacionada, quando intrapredição é realizada, para qualquer bloco de croma, um modo linear de componente cruzado (cross component linear mode, CCLM) pode ser usado para determinar informações de predição. O modo linear de componente cruzado também pode ser referido como um modo de predição de componente cruzado (cross-component prediction, CCP) ou intrapredição de componente cruzado (cross-component intra prediction, CCIP). O modo linear de componente cruzado é um método de intrapredição de croma usando correlação entre luma e croma. O método de intrapredição de croma usa um componente de luma reconstruído para derivar informações de predição de um bloco de croma atual de acordo com o modelo linear, e pode usar a seguinte equação: pred (i, j) = α ∗ rec ′(i, j) + β, onde α e β são parâmetros de modelo de intrapredição, α é um coeficiente de escala, β é um fator de deslocamento, predC(i, j) é um valor de predição de amostras de croma em um local (i, j), e recL'(i, j) é um valor de amostra reconstruído de luma no local (i, j) após um bloco reconstruído de luma correspondente ao bloco de croma atual ter resolução reduzida para uma resolução de componente de croma. O coeficiente de escala e o fator de deslocamento não precisam ser codificados e transmitidos, mas são derivados usando amostras de fronteira de um bloco reconstruído vizinho do bloco de croma atual e amostras de luma em um local correspondente da amostra de fronteira.
[004] Desta forma, um parâmetro de modelo de intrapredição precisa ser determinado para cada bloco de croma usando o CCLM. No entanto, na tecnologia relacionada, determinar o parâmetro de modelo de intrapredição é comparativamente complexo e, portanto, a eficiência de predição do bloco de croma é comparativamente baixa.
SUMÁRIO
[005] Para resolver problemas na tecnologia relacionada, as modalidades deste pedido fornecem um método e aparelho de predição de bloco de croma. As soluções técnicas são as seguintes.
[006] De acordo com um primeiro aspecto, um método de predição de bloco de croma é fornecido. O método inclui: obter um valor de luma máximo e um valor de luma mínimo com base em amostras de luma correspondentes a amostras vizinhas de um bloco de croma alvo; se uma primeira diferença entre o valor de luma máximo e o valor de luma mínimo for maior que 0, processar a primeira diferença com base em uma quantidade de bits significativos da primeira diferença e uma primeira profundidade de bit (bit-depth) predefinida para obter uma segunda diferença, onde uma profundidade de bit da segunda diferença é menor que uma profundidade de bit da primeira diferença; determinar, com base em um primeiro valor de croma, um segundo valor de croma, e a segunda diferença, um parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo, onde o primeiro valor de croma e o segundo valor de croma são determinados com base nas amostras vizinhas do bloco de croma alvo; e determinar informações de predição do bloco de croma alvo com base no parâmetro de modelo de intrapredição e informações de reconstrução de luma correspondentes ao bloco de croma alvo.
[007] Na solução descrita nesta modalidade deste pedido, quando a determinação é realizada até um bloco de croma atual (que pode ser referido como um bloco de croma alvo), um esquema de codificação do bloco de croma alvo pode ser determinado. Se o esquema de codificação for um CCLM, as amostras vizinhas do bloco de croma alvo podem ser determinadas e, em seguida, o valor de luma máximo e o valor de luma mínimo são determinados com base nas amostras vizinhas. Então, uma diferença entre o valor de luma máximo e o valor de luma mínimo, ou seja, a primeira diferença, pode ser determinada. Se a primeira diferença for maior que 0 é determinado. Se a primeira diferença for maior que 0, a quantidade de bits significativos da primeira diferença é determinada, e a primeira diferença é processada com base na quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida para obter a segunda diferença, onde a profundidade de bit da segunda diferença é menor que a profundidade de bit da primeira diferença.
[008] Em seguida, o parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo pode ser determinado com base no primeiro valor de croma, no segundo valor de croma e na segunda diferença, onde o primeiro valor de croma e o segundo valor de croma são determinados com base nas amostras vizinhas do bloco de croma alvo. O parâmetro de modelo de intrapredição inclui um coeficiente de escala (que também pode ser referido como um coeficiente de escala alvo) e um fator de deslocamento (que também pode ser referido como um fator de deslocamento alvo). As informações de reconstrução de luma correspondentes ao bloco de croma alvo são obtidas e, em seguida, as informações de predição do bloco de croma alvo são determinadas com base no parâmetro de modelo de intrapredição determinado e as informações de reconstrução de luma correspondentes ao bloco de croma alvo.
[009] Desta forma, quando o coeficiente de escala é determinado, a primeira diferença entre o valor de luma máximo e o valor de luma mínimo é processada com base na quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida para obter a segunda diferença, onde a profundidade de bit da segunda diferença é menor que a profundidade de bit da primeira diferença. Isso pode reduzir uma quantidade de cálculo para determinar o coeficiente de escala, adicionalmente reduzir uma quantidade de cálculo para determinar o fator de deslocamento, diminuir a complexidade de cálculo do parâmetro de modelo de intrapredição, e melhorar a eficiência de predição de um bloco de croma.
[0010] Em uma possível implementação, a obtenção de um valor de luma máximo e um valor de luma mínimo com base em amostras de luma correspondentes a amostras vizinhas de um bloco de croma alvo inclui: obter o valor de luma máximo e o valor de luma mínimo nas amostras de luma correspondentes às amostras vizinhas do bloco de croma alvo.
[0011] Na solução descrita nesta modalidade deste pedido, quando a determinação é realizada até o bloco de croma atual (que pode ser referido como o bloco de croma alvo), o esquema de codificação do bloco de croma alvo pode ser determinado. Se o esquema de codificação for o CCLM, as amostras vizinhas do bloco de croma alvo podem ser determinadas. Em seguida, são determinados o valor de luma máximo e o valor de luma mínimo nas amostras de luma correspondentes a essas amostras. Quando o primeiro valor de croma e o segundo valor de croma são determinados, um valor de croma de amostras de croma correspondentes a amostras de luma às quais o valor de luma máximo pertence pode ser determinado como o primeiro valor de croma, e um valor de croma de amostras de croma correspondentes a amostras de luma ao qual o valor de luma mínimo pertence pode ser determinado como o segundo valor de croma.
[0012] Em uma implementação possível, a obtenção de um valor de luma máximo e um valor de luma mínimo com base em amostras de luma correspondentes a amostras vizinhas de um bloco de croma alvo inclui: dividir uma quantidade predefinida de amostras de luma correspondentes a uma quantidade predefinida de amostras vizinhas do bloco de croma alvo em um primeiro conjunto de amostras de luma e um segundo conjunto de amostras de luma, onde uma quantidade de amostras de luma no primeiro conjunto de amostras de luma é a mesma que uma quantidade de amostras de luma no segundo conjunto de amostras de luma, e valores de luma das amostras de luma no primeiro conjunto de amostras de luma são maiores ou iguais aos valores de luma das amostras de luma no segundo conjunto de amostras de luma; e determinar o valor de luma máximo com base no primeiro conjunto de amostras de luma, e determinar o valor de luma mínimo com base no segundo conjunto de amostras de luma.
[0013] Na solução descrita nesta modalidade deste pedido, quando a determinação é realizada até o bloco de croma atual (que pode ser referido como o bloco de croma alvo), o esquema de codificação do bloco de croma alvo pode ser determinado. Se o esquema de codificação for o CCLM, as amostras vizinhas do bloco de croma alvo podem ser determinadas. Em seguida, uma quantidade predefinida de amostras de croma (pode ser predefinida para, por exemplo, 4) é selecionada a partir de amostras de croma dessas amostras e, em seguida, uma quantidade alvo de amostras de luma correspondentes a cada amostra de croma na quantidade predefinida de amostras de croma é obtida com base na quantidade predefinida de amostras de croma, o processamento de ponderação é realizado separadamente nos valores de luma da quantidade alvo de amostras de luma correspondentes a cada amostra de croma, para obter valores de luma da quantidade predefinida de amostras de luma (um processo de realização de processamento de ponderação nos valores de luma da quantidade alvo de amostras de luma para obter os valores de luma das amostras de luma pode ser referido como um processo de redução de resolução).
[0014] Em seguida, a quantidade predefinida de amostras de luma é dividida no primeiro conjunto de amostras de luma e no segundo conjunto de amostras de luma. A quantidade de amostras de luma incluídas no primeiro conjunto de amostras de luma é a mesma que a quantidade de amostras de luma incluídas no segundo conjunto de amostras de luma. O valor de luma de cada amostra de luma no primeiro conjunto de amostras de luma é maior ou igual ao valor de luma de cada amostra de luma no segundo conjunto de amostras de luma. Em seguida, um valor médio é obtido nos valores de luma das amostras de luma no primeiro conjunto de amostras de luma, para obter o valor de luma máximo, e um valor médio é obtido nos valores de luma das amostras de luma no segundo conjunto de amostras de luma, para obter o valor de luma mínimo. Um valor médio obtido de amostras de croma das amostras de luma no primeiro conjunto de amostras de luma é determinado como o primeiro valor de croma, e um valor médio obtido de amostras de croma das amostras de luma no segundo conjunto de amostras de luma é determinado como o segundo valor de croma.
[0015] Em uma implementação possível, o primeiro valor de croma corresponde ao valor de luma máximo, e o segundo valor de croma corresponde ao valor de luma mínimo.
[0016] Em uma implementação possível, o processamento da primeira diferença para obter uma segunda diferença inclui: deslocar a primeira diferença para a direita para obter a segunda diferença.
[0017] Na solução descrita nesta modalidade deste pedido, após a primeira diferença ser determinada, a primeira diferença pode ser deslocada para a direita com base na quantidade de bits significativos da primeira diferença e da primeira profundidade de bit predefinida, para obter a segunda diferença.
[0018] Em uma implementação possível, uma terceira diferença entre a quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida é determinada. A primeira diferença é deslocada para a direita com base na terceira diferença para obter a segunda diferença, onde a terceira diferença é maior que 0.
[0019] Na solução descrita nesta modalidade deste pedido, a diferença entre o valor de luma máximo e o valor de luma mínimo, a saber, a primeira diferença, pode ser determinada. Então, se a primeira diferença for maior que 0 pode ser determinado. Se a primeira diferença for maior que 0, a quantidade de bits significativos da primeira diferença pode ser determinada, e a primeira profundidade de bit predefinida pré-armazenada pode ser obtida. Então, uma diferença entre a quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida, a saber, a terceira diferença, pode ser determinada.
[0020] Então, se a terceira diferença for maior que 0 pode ser determinado. Se a terceira diferença for maior que 0, a primeira diferença pode ser deslocada para a direita com base na terceira diferença para obter a segunda diferença.
[0021] Desta forma, em vez de deslocar diretamente a primeira diferença para a direita por bits da primeira profundidade de bit predefinida, uma diferença entre a primeira diferença e a primeira profundidade de bit predefinida é usada como uma quantidade de bits deslocados para a direita, e os bits significativos da primeira diferença podem ser retidos tanto quanto possível. Isso pode melhorar o desempenho de codificação.
[0022] Em uma implementação possível, a primeira diferença é deslocada para a direita por bits da terceira diferença, para obter a segunda diferença.
[0023] Desta forma, em vez de deslocar diretamente a primeira diferença para a direita por bits da primeira profundidade de bit predefinida, uma diferença entre a primeira diferença e a primeira profundidade de bit predefinida é usada como uma quantidade de bits deslocados para a direita, e os bits significativos da primeira diferença podem ser retidos tanto quanto possível. Isso pode melhorar o desempenho de codificação.
[0024] Em uma possível implementação, o parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base no primeiro valor de croma, o segundo valor de croma, um valor predefinido de um parâmetro de deslocamento normalizado, a segunda diferença e o valor de luma mínimo.
[0025] O parâmetro de deslocamento normalizado é usado para realizar o processamento de deslocamento, e o valor predefinido do parâmetro de deslocamento normalizado pode ser predefinido e armazenado em um aparelho mencionado abaixo.
[0026] Na solução descrita nesta modalidade deste pedido, cada bloco de croma usando o CCLM corresponde a um parâmetro de modelo de intrapredição, e o parâmetro de modelo de intrapredição inclui um fator de deslocamento e um coeficiente de escala. Um coeficiente de escala e um fator de deslocamento correspondente ao bloco de croma alvo podem ser determinados com base no primeiro valor de croma, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, a segunda diferença, o valor de luma mínimo, e uma fórmula predefinida.
[0027] Em uma implementação possível, o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base no primeiro valor de croma, no segundo valor de croma, na segunda diferença e no valor predefinido. O fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base no coeficiente de escala, o segundo valor de croma, um valor alvo do parâmetro de deslocamento normalizado, e o valor de luma mínimo.
[0028] Na solução descrita nesta modalidade deste pedido, o valor predefinido do parâmetro de deslocamento normalizado pode ser obtido, e o valor predefinido é um valor de parâmetro predefinido para o parâmetro de deslocamento normalizado. Então, o primeiro valor de croma, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, e a segunda diferença podem ser inseridos em uma fórmula predefinida para obter o coeficiente de escala correspondente ao bloco de croma alvo e, em seguida, o coeficiente de escala, o valor predefinido do parâmetro de deslocamento normalizado, e o valor de luma mínimo são inseridos em outra fórmula predefinida, para obter o fator de deslocamento correspondente ao bloco de croma alvo.
[0029] Em uma implementação possível, a determinação, com base no coeficiente de escala, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, e o valor de luma mínimo, de um fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo inclui: determinar, com base no coeficiente de escala, o segundo valor de croma, o valor alvo do parâmetro de deslocamento normalizado, e o valor de luma mínimo, o fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo, onde o valor alvo do parâmetro de deslocamento normalizado é determinado com base no valor predefinido do parâmetro de deslocamento normalizado.
[0030] Na solução descrita nesta modalidade deste pedido, o valor alvo do parâmetro de deslocamento normalizado é determinado com base no valor predefinido do parâmetro de deslocamento normalizado, e o fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base no coeficiente de escala, o segundo valor de croma, o valor alvo do parâmetro de deslocamento normalizado, e o valor de luma mínimo. Desta forma, porque o valor alvo do parâmetro de deslocamento normalizado é usado, o parâmetro de intrapredição determinado pode ser mais preciso.
[0031] Em uma implementação possível,  2  N a   max C  min C   Floor    diff  , onde a é o coeficiente de escala, diff é a segunda diferença, maxC é o primeiro valor de croma,
minC é o segundo valor de croma, e N é o valor predefinido.
[0032] Na solução descrita nesta modalidade deste pedido, o coeficiente de escala é determinado de acordo com  2N  a   max C  min C   Floor   uma fórmula  diff  . Porque diff é deslocado para a direita em relação à primeira diferença,  2N  Floor    diff  pode ser determinado por meio de uma tabela de pesquisa. Isso diminui a complexidade.
[0033] Em uma implementação possível,  2  N a   max C  min C   Floor    div  diff  onde  2 2N   2 N  N N -1  div=   max C  min C   Floor   -Floor    2 +2   N   diff   diff   , a é o coeficiente de escala, diff é a segunda diferença, maxC é o primeiro valor de croma, minC é o segundo valor de croma, e N é o valor predefinido.
[0034] Na solução descrita nesta modalidade deste pedido, o coeficiente de escala é determinado de acordo com  2N  a   max C  min C   Floor    div  diff  uma fórmula ; diff é deslocado  2N  Floor   para a direita em relação à primeira diferença, e  diff  pode ser determinado por meio de uma tabela de pesquisa. Portanto, isso diminui a complexidade.  2N  Floor  
[0035] Em uma possível implementação,  diff  pode ser determinado por meio de uma tabela de pesquisa. Isso aumenta a velocidade de processamento.
[0036] Em uma implementação possível, um coeficiente de escala inicial no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base no primeiro valor de croma, no segundo valor de croma, no valor predefinido, e na segunda diferença. Se uma quarta diferença entre uma quantidade de bits significativos do coeficiente de escala inicial e uma segunda profundidade de bit predefinida for maior que 0, o coeficiente de escala inicial é deslocado para a direita com base na quarta diferença para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
[0037] Na solução descrita nesta modalidade deste pedido, o coeficiente de escala inicial no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo pode ser determinado com base no primeiro valor de croma, o segundo valor de croma, o valor predefinido e a segunda diferença. Para este processo, consulte a implementação 1 ou implementação 2 anteriores. Em seguida, a segunda profundidade de bit predefinida correspondente ao coeficiente de escala pode ser obtida, a quarta diferença entre a quantidade de bits significativos do coeficiente de escala inicial e a segunda profundidade de bit predefinida é determinada, e se a quarta diferença é maior que 0 é determinado. Se a quarta diferença for maior que 0, o coeficiente de escala inicial é deslocado para a direita com base na quarta diferença para obter o coeficiente de escala correspondente ao bloco de croma alvo.
[0038] Desta forma, após o coeficiente de escala inicial ser deslocado para a direita, uma profundidade de bit do coeficiente de escala é reduzida. Portanto, isso pode diminuir a complexidade de determinar subsequentemente a multiplicação nas informações de predição.
[0039] Em uma possível implementação, o coeficiente de escala inicial é deslocado para a direita por bits da quarta diferença, para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
[0040] Em uma possível implementação, o método inclui ainda: se a quarta diferença for maior que 0, determinar uma diferença entre a quarta diferença e uma soma do valor predefinido do parâmetro de deslocamento normalizado e a terceira diferença como o valor alvo do parâmetro de deslocamento normalizado.
[0041] Na solução descrita nesta modalidade deste pedido, se a quarta diferença for maior que 0, a diferença entre a quarta diferença e a soma do valor predefinido do parâmetro de deslocamento normalizado e a terceira diferença pode ser determinada como o valor alvo do parâmetro de deslocamento normalizado.
[0042] Em uma implementação possível, a segunda profundidade de bit predefinida é uma profundidade de bit de um coeficiente de filtro de intrainterpolação.
[0043] Na solução descrita nesta modalidade deste pedido, a segunda profundidade de bit predefinida é definida para a profundidade de bit do coeficiente de filtro de intrainterpolação, para alinhar com a complexidade da intrapredição.
[0044] Em uma possível implementação, a determinação, com base no coeficiente de escala, o segundo valor de croma, um valor alvo, e o valor de luma mínimo, do fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo inclui:
b  min C-   a  min Y   k  , onde b é o fator de deslocamento, a é o coeficiente de escala, minC é o segundo valor de croma, minY é o valor de luma mínimo, e k é o valor alvo.
[0045] Na solução descrita nesta modalidade deste pedido, uma fórmula de cálculo de fator de deslocamento b  min C-   a  min Y   k  predefinida pode ser obtida, o que indica que uma diferença entre minC e um valor obtido depois de a minY ser deslocado por k bits para a direita é obtida, para obter o fator de deslocamento b correspondente ao bloco de croma alvo. O coeficiente de escala a, o segundo croma minC, o valor alvo k do parâmetro de deslocamento normalizado, e o valor de luma mínimo minY são substituídos na fórmula, para determinar o fator de deslocamento b correspondente ao bloco de croma alvo. K = N + shiftLuma, onde shiftLuma é a terceira diferença mencionada acima.
[0046] Em uma possível implementação, o método inclui ainda: se a primeira diferença não for maior que 0, determinar que o coeficiente de escala no parâmetro de modelo de intrapredição é 0, e determinar que o fator de deslocamento no parâmetro de modelo de intrapredição é o segundo valor de croma.
[0047] Na solução descrita nesta modalidade deste pedido, se a primeira diferença não for maior que 0, o coeficiente de escala pode ser determinado como 0. Então, o segundo valor de croma, o valor alvo do parâmetro de deslocamento normalizado, e o valor de luma mínimo são b  min C-   a  min Y   k  substituídos na fórmula , para obter que b = minC. Em outras palavras, o fator de deslocamento é o segundo valor de croma. Desta forma, o parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo pode ser determinado quando a primeira diferença não é maior que
0.
[0048] Em uma possível implementação, o valor predefinido do parâmetro de deslocamento normalizado é a profundidade de bit da primeira diferença, uma profundidade de bit das amostras de luma, uma soma da profundidade de bit da primeira diferença e um segundo valor predefinido, um produto da profundidade de bit da primeira diferença e um terceiro valor predefinido, ou uma profundidade de bit de um byte.
[0049] O segundo valor predefinido é um número inteiro positivo, por exemplo, 4 bits. O terceiro valor predefinido é um número inteiro positivo, por exemplo, 2 bits.
[0050] Na solução descrita nesta modalidade deste pedido, o valor predefinido do parâmetro de deslocamento normalizado pode ser definido para a profundidade de bit da primeira diferença. O valor predefinido do parâmetro de deslocamento normalizado também pode ser definido para a profundidade de bit das amostras de luma.
[0051] O valor predefinido do parâmetro de deslocamento normalizado também pode ser definido como a soma da profundidade de bit da primeira diferença e o segundo valor predefinido. Por exemplo, a profundidade de bit da primeira diferença é 4 bits, o segundo valor predefinido é 4 bits, e o valor predefinido do parâmetro de deslocamento normalizado pode ser 8 bits.
[0052] O valor predefinido do parâmetro de deslocamento normalizado também pode ser definido como o produto da profundidade de bit da primeira diferença e o terceiro valor predefinido. Por exemplo, a profundidade de bit da primeira diferença é 4 bits, o terceiro valor predefinido é 2, e o valor predefinido do parâmetro de deslocamento normalizado é 8 bits.
[0053] O valor predefinido do parâmetro de deslocamento normalizado pode ser definido para a profundidade de bit de um byte.
[0054] Desta forma, o valor predefinido do parâmetro de deslocamento normalizado pode ser ajustado para qualquer um dos valores anteriores, e é menor que 16 na tecnologia relacionada. Isso pode reduzir a profundidade de bit de um valor na tabela para pesquisa subsequente e, portanto, reduzir a quantidade de dados da tabela.
[0055] Em uma implementação possível, a primeira profundidade de bit predefinida é menor que a profundidade de bit das amostras de luma.
[0056] Em uma implementação possível, as informações de reconstrução de luma correspondentes ao bloco de croma alvo incluem informações de redução de resolução de um bloco de reconstrução de luma correspondente ao bloco de croma alvo.
[0057] De acordo com um segundo aspecto, um aparelho de predição de bloco de croma é fornecido. O aparelho de predição inclui um processador e uma memória. A memória é configurada para armazenar instruções de computador executadas pelo processador, e o processador executa as instruções para implementar o método de predição de bloco de croma de acordo com o primeiro aspecto.
[0058] De acordo com um terceiro aspecto, um aparelho de predição de bloco de croma é fornecido. O aparelho inclui um ou mais módulos que são configurados para implementar o método de predição de bloco de croma de acordo com o primeiro aspecto.
[0059] De acordo com um quarto aspecto, um meio de armazenamento legível por computador é fornecido. O meio de armazenamento legível por computador armazena instruções de computador. Quando as instruções de computador no meio de armazenamento legível por computador são rodadas em um dispositivo de computação, o dispositivo de computação é habilitado para realizar o método de predição de bloco de croma de acordo com o primeiro aspecto.
[0060] De acordo com um quinto aspecto, é fornecido um produto de programa de computador incluindo instruções. Quando o produto de programa de computador roda em um dispositivo de computação, o dispositivo de computação é habilitado para realizar o método de predição de bloco de croma de acordo com o primeiro aspecto.
[0061] As soluções técnicas fornecidas nas modalidades deste pedido trazem pelo menos os seguintes efeitos benéficos: nas modalidades deste pedido, ao determinar as informações de predição de um bloco de croma alvo, um aparelho de predição de bloco de croma pode obter um valor de luma máximo e um valor de luma mínimo com base em amostras de luma correspondentes às amostras vizinhas do bloco de croma alvo e, em seguida, determinar uma primeira diferença entre o valor de luma máximo e o valor de luma mínimo. Se a primeira diferença for maior que 0, a primeira diferença pode ser processada com base em uma quantidade de bits significativos da primeira diferença e uma primeira profundidade de bit predefinida para obter uma segunda diferença, onde uma profundidade de bit da segunda diferença é menor que um profundidade de bit da primeira diferença. Em seguida, um parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base em um primeiro valor de croma, um segundo valor de croma e a segunda diferença e, em seguida, as informações de predição do bloco de croma alvo são determinadas com base no parâmetro de modelo de intrapredição e informações de reconstrução de luma correspondentes ao bloco de croma alvo. Desta forma, quando o parâmetro de modelo de intrapredição é determinado, a primeira diferença entre o valor de luma máximo e o valor de luma mínimo é processada com base na quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida, de modo que a profundidade de bit da segunda diferença é menor que a profundidade de bit da primeira diferença. Isso pode reduzir uma quantidade de cálculo do parâmetro de modelo de intrapredição, e melhorar a eficiência de predição do bloco de croma.
BREVE DESCRIÇÃO DOS DESENHOS
[0062] A Figura 1 é um diagrama de blocos de um exemplo de um sistema de codificação de vídeo usado para implementar uma modalidade deste pedido; a Figura 2 é um diagrama de blocos de um exemplo de um sistema de codificação de vídeo incluindo qualquer um ou dois de um codificador 20 na Figura 3 e um decodificador 30 na Figura 4; a Figura 3 é um diagrama de blocos mostrando um exemplo de estrutura de um codificador de vídeo usado para implementar uma modalidade deste pedido;
a Figura 4 é um diagrama de blocos mostrando um exemplo de estrutura de um decodificador de vídeo usado para implementar uma modalidade deste pedido; a Figura 5 é um diagrama de blocos ilustrando um exemplo de um aparelho de codificação ou um aparelho de decodificação; a Figura 6 é um diagrama de blocos ilustrando um exemplo de outro aparelho de codificação ou outro aparelho de decodificação; a Figura 7 ilustra um exemplo de uma grade de amostragem em um formato YUV; a Figura 8 ilustra uma modalidade de um modo de predição de componente cruzado (cross-component prediction, CCP); a Figura 9 é um diagrama esquemático de um modelo superior e um modelo esquerdo; a Figura 10 é outro diagrama esquemático de um modelo superior e um modelo esquerdo; a Figura 11 é um fluxograma esquemático de um método de predição de bloco de croma; a Figura 12 é um fluxograma esquemático de um método de predição de bloco de croma; e a Figura 13 é um diagrama esquemático de uma estrutura de um aparelho de predição de bloco de croma.
DESCRIÇÃO DE MODALIDADES
[0063] Para tornar os objetivos, soluções técnicas e vantagens deste pedido mais claros, o seguinte descreve melhor as implementações deste pedido em detalhes com referência aos desenhos anexos.
[0064] Para facilitar a compreensão deste pedido, o seguinte primeiro descreve uma arquitetura de sistema e conceitos neste pedido.
[0065] A codificação de vídeo normalmente se refere ao processamento de uma sequência de imagens, onde a sequência de imagens forma um vídeo ou uma sequência de vídeo. No campo da codificação de vídeo, os termos “imagem (picture)”, “quadro (frame)” e “imagem (image)” podem ser usados como sinônimos. A codificação de vídeo usada neste pedido (ou nesta divulgação) indica codificação de vídeo ou decodificação de vídeo. A codificação de vídeo é realizada em um lado de fonte, e geralmente inclui o processamento (por exemplo, por meio de compressão) de uma imagem de vídeo original para reduzir uma quantidade de dados para representar a imagem de vídeo, para armazenamento e / ou transmissão mais eficiente. A decodificação de vídeo é realizada em um lado de destino, e normalmente inclui processamento inverso em comparação com o codificador para reconstruir uma imagem de vídeo. “Codificação” de uma imagem de vídeo nas modalidades deve ser entendida como “codificação” ou “decodificação” de uma sequência de vídeo. Uma combinação da parte de codificação e da parte de decodificação também é referida como codificação e decodificação (encoding and decoding, ou CODEC para abreviar).
[0066] Cada imagem de uma sequência de vídeo é geralmente particionada em um conjunto de blocos não sobrepostos, e a codificação geralmente é realizada em um nível de bloco. Em outras palavras, em um lado de codificador, um vídeo é geralmente processado, ou seja, codificado, em um nível de bloco (que também é conhecido como bloco de imagem ou bloco de vídeo). Por exemplo, um bloco de predição é gerado por meio de predição espacial (intraimagem) e predição temporal (interimagem), o bloco de predição é subtraído de um bloco atual (um bloco que está sendo processado ou a ser processado) para obter um bloco residual, e o bloco residual é transformado em um domínio de transformada e quantizado para reduzir uma quantidade de dados que deve ser transmitida (comprimida). No lado de decodificador, uma parte de processamento inversa em relação ao codificador é aplicada ao bloco codificado ou comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica um loop de processamento do decodificador, de modo que o codificador e o decodificador geram predição idêntica (por exemplo, intrapredição e interpredição) e / ou reconstrução para processamento, isto é, codificação, de blocos subsequentes.
[0067] O termo “bloco” pode fazer parte de uma imagem ou quadro. Os termos-chave neste pedido são definidos da seguinte forma: bloco atual: um bloco que está sendo processado. Por exemplo, na codificação, um bloco atual é um bloco que está sendo codificado atualmente. Na decodificação, um bloco atual é um bloco que está sendo decodificado. Se o bloco que está sendo processado for um bloco de componente de croma, ele é referido como um bloco de croma atual. Um bloco de luma correspondente ao bloco de croma atual pode ser referido como um bloco de luma atual.
[0068] Bloco de referência: um bloco que fornece um sinal de referência para um bloco atual. Em um processo de busca, uma pluralidade de blocos de referência pode ser percorrida para encontrar um bloco de referência ideal.
[0069] Bloco de predição: um bloco que fornece predição para um bloco atual. Por exemplo, após uma pluralidade de blocos de referência serem percorridos para encontrar um bloco de referência ideal. O bloco de referência ideal fornece predição para o bloco atual, e este bloco é referido como um bloco de predição.
[0070] Sinal de bloco de imagem: um valor de amostra, um valor de amostragem, ou um sinal de amostragem em um bloco de imagem.
[0071] Sinal de predição: um valor de amostra, um valor de amostragem, ou um sinal de amostragem em um bloco de predição.
[0072] O seguinte descreve modalidades de um codificador 20, um decodificador 30 e um sistema de codificação 10 com referência à Figura 1, e Figura 2 à Figura
4.
[0073] A Figura 1 é um diagrama de blocos conceitual ou esquemático de um sistema de codificação de exemplo 10, por exemplo, um sistema de codificação de vídeo 10 que pode usar uma tecnologia deste pedido (esta divulgação). O codificador 20 (por exemplo, um codificador de vídeo 20) e o decodificador 30 (por exemplo, um decodificador de vídeo 30) do sistema de codificação de vídeo 10 representam dispositivos de exemplo que podem ser configurados para realizar intrapredição com base em vários exemplos descritos neste pedido. Como mostrado na Figura 1, o sistema de codificação 10 inclui um dispositivo de origem 12 configurado para fornecer dados codificados 13, como uma imagem codificada 13 para, por exemplo, um dispositivo de destino 14 que decodifica os dados codificados 13.
[0074] O dispositivo de origem 12 inclui o codificador 20 e, opcionalmente, pode incluir uma fonte de imagem 16, por exemplo, uma unidade de pré-processamento 18 de uma unidade de pré-processamento de imagem 18 e uma interface de comunicações ou unidade de comunicações 22.
[0075] A fonte de imagem 16 pode incluir ou ser qualquer tipo de dispositivo de captura de imagem configurado para, por exemplo, capturar uma imagem do mundo real; e / ou qualquer tipo de dispositivo para gerar uma imagem ou comentário (para codificação de conteúdo de tela, algum texto em uma tela também é considerado como parte de uma imagem ou imagem a ser codificada), por exemplo, um processador gráfico de computador configurado para gerar uma imagem de animação por computador; ou qualquer tipo de dispositivo configurado para obter e / ou fornecer uma imagem do mundo real ou uma imagem de animação de computador (por exemplo, conteúdo de tela ou uma imagem de realidade virtual (virtual reality, VR)); e / ou qualquer combinação dos mesmos (por exemplo, uma imagem de realidade aumentada (augmented reality, AR)).
[0076] Uma imagem pode ser considerada como um arranjo ou matriz bidimensional de amostras com valores de luma. Uma amostra no arranjo também pode ser referida como um pixel (pixel) (uma forma curta de elemento de imagem (picture element)) ou pel (pel). Uma quantidade de amostras nas direções horizontal e vertical (ou eixos) do arranjo ou da imagem define um tamanho e / ou uma resolução da imagem. Para a representação de uma cor, normalmente são usados três componentes de cor. Para ser específico, a imagem pode ser representada como ou incluir três arranjos de amostra. Em um formato RGB ou espaço de cor, uma imagem inclui arranjos de amostra vermelhas, verdes e azuis correspondentes. No entanto, na codificação de vídeo, cada amostra é geralmente representada em um formato de luma / croma ou um espaço de cor, por exemplo, YCbCr, que inclui um componente de luma indicado por Y (às vezes indicado por L) e dois componentes de croma indicados por Cb e Cr. O componente Y de luminância (luma, para abreviar) representa o brilho ou a intensidade do nível de cinza (por exemplo, ambos são iguais em uma imagem de escala de cinza), e os dois componentes de crominância (croma, para abreviar) Cb e Cr representam os componentes de informações de croma ou cor. Correspondentemente, uma imagem em um formato YCbCr inclui um arranjo de amostra de luma de valores de amostra de luma (Y), e dois arranjos de amostra de croma de valores de croma (Cb e Cr). Uma imagem em formato RGB pode ser transformada ou convertida em uma imagem em formato YCbCr e vice-versa. Esse processo também é conhecido como conversão ou transformada de cor. Se uma imagem for monocromática, a imagem pode incluir apenas um arranjo de amostra de luma.
[0077] A fonte de imagem 16 (por exemplo, uma fonte de vídeo 16) pode ser, por exemplo, uma câmera para capturar uma imagem, ou uma memória como uma memória de imagem, incluindo ou armazenando uma imagem capturada ou gerada anteriormente, e / ou qualquer tipo de interface (interna ou externa) para obter ou receber uma imagem. A câmera pode ser, por exemplo, uma câmera local, ou uma câmera integrada no dispositivo de origem, e a memória pode ser uma memória local ou, por exemplo, uma memória integrada no dispositivo de origem. A interface pode ser, por exemplo, uma interface externa para receber uma imagem a partir de uma fonte de vídeo externa. A fonte de vídeo externa é, por exemplo, um dispositivo de captura de imagem externo, como uma câmera, uma memória externa ou um dispositivo de geração de imagem externo. O dispositivo de geração de imagem externo é, por exemplo, um processador gráfico de computador externo, um computador ou um servidor. A interface pode ser qualquer tipo de interface, por exemplo, uma interface com fio ou sem fio ou uma interface ótica, de acordo com qualquer protocolo de interface proprietário ou padronizado. Uma interface para obter dados de imagem 17 pode ser a mesma interface ou uma parte da interface de comunicações 22.
[0078] Diferente da unidade de pré-processamento 18 e processamento realizado pela unidade de pré-processamento 18, a imagem ou dados de imagem 17 (por exemplo, dados de vídeo 16) também podem ser referidos como uma imagem bruta ou dados de imagem brutos 17.
[0079] A unidade de pré-processamento 18 é configurada para receber os dados de imagem (brutos) 17 e realizar pré-processamento nos dados de imagem 17 para obter uma imagem pré-processada 19 ou dados de imagem pré- processados 19. Por exemplo, o pré-processamento realizado pela unidade de pré-processamento 18 pode incluir corte, conversão de formato de cor (por exemplo, de RGB para YCbCr), correção de cor ou redução de ruído. Pode ser entendido que a unidade de pré-processamento 18 pode ser um componente opcional.
[0080] O codificador 20 (por exemplo, o codificador de vídeo 20) é configurado para receber os dados de imagem pré-processados 19 e fornecer dados de imagem codificados 21 (detalhes são descritos abaixo, por exemplo, com base na
Figura 3 ou Figura 5). Em um exemplo, o codificador 20 pode ser configurado para realizar as seguintes modalidades 1 a
7.
[0081] A interface de comunicações 22 do dispositivo de origem 12 pode ser configurada para receber os dados de imagem codificados 21 e transmitir os dados de imagem codificados 21 para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta. Alternativamente, a interface de comunicações 22 é configurada para processar os dados de imagem codificados 21 antes de armazenar correspondentemente os dados codificados 13 e / ou transmitir os dados codificados 13 para outro dispositivo. O outro dispositivo é, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo usado para decodificação ou armazenamento.
[0082] O dispositivo de destino 14 inclui o decodificador 30 (por exemplo, o decodificador de vídeo 30) e, opcionalmente, pode incluir uma interface de comunicações ou unidade de comunicações 28, uma unidade de pós- processamento 32 e um dispositivo de exibição 34.
[0083] A interface de comunicações 28 do dispositivo de destino 14 é configurada para, por exemplo, receber os dados de imagem codificados 21 ou os dados codificados 13 diretamente a partir do dispositivo de origem 12 ou qualquer outra fonte. Qualquer outra fonte é, por exemplo, um dispositivo de armazenamento. O dispositivo de armazenamento é, por exemplo, um dispositivo de armazenamento de dados de imagem codificados.
[0084] A interface de comunicações 22 e a interface de comunicações 28 podem ser configuradas para transmitir ou receber os dados de imagem codificados 21 ou os dados codificados 13 por meio de um enlace de comunicações direto entre o dispositivo de origem 12 e o dispositivo de destino 14 ou por meio de qualquer tipo de rede. O enlace de comunicações direto é, por exemplo, uma conexão direta com ou sem fio. Qualquer tipo de rede é, por exemplo, uma rede com fio ou sem fio ou qualquer combinação das mesmas, ou qualquer tipo de rede privada ou pública, ou qualquer combinação das mesmas.
[0085] A interface de comunicações 22 pode ser, por exemplo, configurada para empacotar os dados de imagem codificados 21 em um formato apropriado, por exemplo, um pacote, para transmissão através de um enlace de comunicações ou rede de comunicações.
[0086] A interface de comunicações 28 formando uma parte correspondente da interface de comunicações 22 pode ser, por exemplo, configurada para desempacotar os dados codificados 13, para obter os dados de imagem codificados
21.
[0087] Tanto a interface de comunicações 22 quanto a interface de comunicações 28 podem ser configuradas como interfaces de comunicações unidirecionais, conforme indicado por uma seta que aponta a partir do dispositivo de origem 12 para o dispositivo de destino 14 e que é usada para os dados de imagem codificados 13 na Figura 1, ou podem ser configuradas como interfaces de comunicações bidirecionais e podem ser configuradas para, por exemplo, enviar e receber mensagens para estabelecer uma conexão, e reconhecer e trocar quaisquer outras informações relacionadas a um enlace de comunicações e / ou transmissão de dados, como transmissão de dados de imagem codificada.
[0088] O decodificador 30 é configurado para receber os dados de imagem codificados 21 e fornecer dados de imagem decodificados 31 ou uma imagem decodificada 31 (detalhes são descritos abaixo, por exemplo, com base na Figura 4 ou Figura 6). Em um exemplo, o decodificador 30 pode ser configurado para realizar as seguintes modalidades 1 a 7.
[0089] O pós-processador 32 do dispositivo de destino 14 é configurado para pós-processar os dados de imagem decodificados 31 (também referidos como dados de imagem reconstruídos), por exemplo, a imagem decodificada 131, para obter dados de imagem pós-processados 33, por exemplo, uma imagem pós-processada 33. O pós-processamento realizado pela unidade de pós-processamento 32 pode incluir, por exemplo, conversão de formato de cor (por exemplo, de YCbCr para RGB), correção de cor, corte ou reamostragem, ou qualquer outro processamento para, por exemplo, preparar os dados de imagem decodificados 31 para exibição por, por exemplo, o dispositivo de exibição 34.
[0090] O dispositivo de exibição 34 do dispositivo de destino 14 é configurado para receber os dados de imagem pós-processados 33 para exibir uma imagem, por exemplo, para um usuário ou visualizador. O dispositivo de exibição 34 pode ser ou incluir qualquer tipo de tela de exibição para apresentar uma imagem reconstruída, por exemplo, uma tela de exibição ou monitor integrado ou externo. Por exemplo, a tela de exibição pode incluir uma tela de exibição de cristal líquido (liquid crystal display, LCD), uma tela de exibição de diodo emissor de luz orgânico (organic light emitting diode, OLED), uma tela de exibição de plasma, um projetor, uma tela de exibição de microLED, um cristal líquido em silício (liquid crystal on silicon, LCoS), um processador de luz digital (digital light processor, DLP) ou qualquer outro tipo de tela de exibição.
[0091] Embora a Figura 1 represente o dispositivo de origem 12 e o dispositivo de destino 14 como dispositivos separados, uma modalidade de dispositivo pode, alternativamente, incluir tanto o dispositivo de origem 12 quanto o dispositivo de destino 14 ou funcionalidades tanto do dispositivo de origem 12 quanto do dispositivo de destino 14, isto é, o dispositivo de origem 12 ou a funcionalidade correspondente e o dispositivo de destino 14 ou a funcionalidade correspondente. Em tal modalidade, o dispositivo de origem 12 ou a funcionalidade correspondente e o dispositivo de destino 14 ou a funcionalidade correspondente podem ser implementados usando o mesmo hardware e / ou software, hardware e / ou software separados ou qualquer combinação dos mesmos.
[0092] Como será evidente para um especialista na técnica com base nas descrições, existência e divisão (exata) de funcionalidades de diferentes unidades ou as funcionalidades do dispositivo de origem 12 e / ou do dispositivo de destino 14 mostrado na Figura 1 podem variar dependendo do dispositivo e aplicação reais.
[0093] O codificador 20 (por exemplo, o codificador de vídeo 20) e o decodificador 30 (por exemplo, o decodificador de vídeo 30), cada um pode ser implementado como qualquer um dos vários circuitos adequados, por exemplo, um ou mais microprocessadores, processadores de sinal digital (digital signal processor, DSP), circuitos integrados de aplicação específica (application-specific integrated circuit, ASIC), arranjos de portas programáveis em campo (field-programmable gate array, FPGA), lógica discreta, hardware ou qualquer combinação dos mesmos. Se as tecnologias forem implementadas parcialmente usando software, um dispositivo pode armazenar instruções de software em um meio de armazenamento legível por computador apropriado e não transitório e pode executar instruções usando hardware, como um ou mais processadores, para realizar as tecnologias desta divulgação. Qualquer um dos conteúdos anteriores (incluindo hardware, software, uma combinação de hardware e software, e semelhantes) pode ser considerado como um ou mais processadores. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser incluídos em um ou mais codificadores ou decodificadores, e o codificador ou decodificador pode ser integrado como parte de um codificador / decodificador (codec) combinado em um dispositivo correspondente.
[0094] O dispositivo de origem 12 pode ser referido como um dispositivo de codificação de vídeo ou um aparelho de codificação de vídeo. O dispositivo de destino 14 pode ser referido como um dispositivo de decodificação de vídeo ou um aparelho de decodificação de vídeo. O dispositivo de origem 12 e o dispositivo de destino 14 podem ser um exemplo de um dispositivo de codificação de vídeo ou um aparelho de codificação de vídeo.
[0095] O dispositivo de origem 12 e o dispositivo de destino 14 podem incluir qualquer um de uma ampla gama de dispositivos, incluindo qualquer tipo de dispositivo portátil ou estacionário, por exemplo, um notebook ou laptop, um telefone móvel, um smartphone, um tablet ou tablet, uma câmera de vídeo, um computador de mesa, um decodificador, uma televisão, um dispositivo de exibição, um reprodutor de mídia digital, um console de videogame, um dispositivo de streaming de vídeo (como um servidor de serviço de conteúdo ou um servidor de entrega de conteúdo), um dispositivo receptor de difusão ou um dispositivo transmissor de difusão, e pode usar ou não usar qualquer tipo de sistema operacional.
[0096] Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio. Portanto, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser dispositivos de comunicação sem fio.
[0097] Em alguns casos, o sistema de codificação de vídeo 10 mostrado na Figura 1 é meramente um exemplo, e as tecnologias deste pedido são aplicáveis às configurações de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre um dispositivo de codificação e um dispositivo de decodificação. Em outros exemplos, os dados podem ser recuperados de uma memória local, difundidos por uma rede, ou semelhantes. Um dispositivo de codificação de vídeo pode codificar e armazenar dados na memória e / ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados a partir da memória. Em alguns exemplos, a codificação e a decodificação são realizadas por dispositivos que não se comunicam entre si, mas simplesmente codificam dados para a memória e / ou recuperam e decodificam dados a partir da memória.
[0098] Deve ser entendido que para cada um dos exemplos descritos com referência ao codificador de vídeo 20, o decodificador de vídeo 30 pode ser configurado para realizar um processo reverso. No que diz respeito a um elemento de sintaxe de sinalização, o decodificador de vídeo 30 pode ser configurado para receber e analisar tal elemento de sintaxe e, de forma correspondente, decodificar dados de vídeo relacionados. Em alguns exemplos, o codificador 20 pode codificar por entropia o elemento de sintaxe em um fluxo de bits de vídeo codificado. Em tais exemplos, o decodificador de vídeo 30 pode analisar tal elemento de sintaxe e decodificar de forma correspondente os dados de vídeo relacionados.
[0099] A Figura 2 é um diagrama de ilustração de um exemplo de um sistema de codificação de vídeo 40 incluindo o codificador 20 na Figura 3 e / ou o decodificador 30 na Figura 4 de acordo com uma modalidade de exemplo. O sistema 40 pode implementar uma combinação de várias tecnologias deste pedido. Em uma implementação descrita, o sistema de codificação de vídeo 40 pode incluir um dispositivo de imagiologia 41, o codificador de vídeo 20, o decodificador de vídeo 30 (e / ou um codificador de vídeo implementado usando um circuito lógico 47 de uma unidade de processamento 46), uma antena 42, um ou mais processadores 43, uma ou mais memórias 44 e / ou um dispositivo de exibição 45.
[00100] Como mostrado na Figura 2, o dispositivo de imagiologia 41, a antena 42, a unidade de processamento 46, o circuito lógico 47, o codificador de vídeo 20, o decodificador de vídeo 30, o processador 43, a memória 44 e
/ ou o dispositivo de exibição 45 podem se comunicar com cada outro. Conforme descrito, embora o sistema de codificação de vídeo 40 seja ilustrado usando o codificador de vídeo 20 e o decodificador de vídeo 30, em outro exemplo diferente, o sistema de codificação de vídeo 40 pode incluir apenas o codificador de vídeo 20 ou apenas o decodificador de vídeo 30.
[00101] Em alguns exemplos, como mostrado na Figura 2, o sistema de codificação de vídeo 40 pode incluir a antena
42. Por exemplo, a antena 42 pode ser configurada para transmitir ou receber fluxos de bits codificados de dados de vídeo. Além disso, em alguns exemplos, o sistema de codificação de vídeo 40 pode incluir o dispositivo de exibição 45. O dispositivo de exibição 45 pode ser configurado para apresentar os dados de vídeo. Em alguns exemplos, como mostrado na Figura 2, o circuito lógico 47 pode ser implementado pela unidade de processamento 46. A unidade de processamento 46 pode incluir lógica de circuito integrado de aplicação específica (application-specific integrated circuit, ASIC), um processador gráfico, um processador de propósito geral, ou semelhantes. O sistema de codificação de vídeo 40 pode incluir ainda um processador opcional 43. O processador opcional 43 pode incluir de forma semelhante lógica de circuito integrado de aplicação específica (application-specific integrated circuit, ASIC), um processador gráfico, um processador de propósito geral, ou semelhantes. Em alguns exemplos, o circuito lógico 47 pode ser implementado por hardware, por exemplo, hardware dedicado para codificação de vídeo. O processador 43 pode ser implementado por software de propósito geral, um sistema operacional, ou semelhantes. Além disso, a memória 44 pode ser qualquer tipo de memória, por exemplo, uma memória volátil (por exemplo, uma memória de acesso aleatório estática (Static Random Access Memory, SRAM) ou uma memória de acesso aleatório dinâmica (Dynamic Random Access Memory, DRAM)) ou uma memória não volátil (por exemplo, uma memória flash). Em um exemplo não limitativo, a memória 44 pode ser implementada como uma memória cache. Em alguns exemplos, o circuito lógico 47 pode acessar a memória 44 (por exemplo, para implementação de um buffer de imagem). Em outro exemplo, o circuito lógico 47 e / ou a unidade de processamento 46 podem incluir uma memória (por exemplo, um cache) para implementação de um buffer de imagens ou semelhantes.
[00102] Em alguns exemplos, o codificador de vídeo 20 implementado usando o circuito lógico pode incluir um buffer de imagens (que é implementado, por exemplo, pela unidade de processamento 46 ou a memória 44) e uma unidade de processamento gráfico (que é implementado por, por exemplo, a unidade de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao buffer de imagem. A unidade de processamento gráfico pode incluir o codificador de vídeo 20 implementado usando o circuito lógico 47, para implementar vários módulos descritos com referência à Figura 2 e / ou qualquer outro sistema ou subsistema codificador descrito neste relatório descritivo. O circuito lógico pode ser configurado para executar várias operações descritas neste relatório descritivo.
[00103] O decodificador de vídeo 30 pode ser implementado pelo circuito lógico 47 em uma maneira semelhante, para implementar vários módulos descritos com referência ao decodificador 30 na Figura 4 e / ou qualquer outro sistema ou subsistema decodificador descrito neste relatório descritivo. Em alguns exemplos, o decodificador de vídeo 30 implementado usando o circuito lógico pode incluir um buffer de imagens (que é implementado pela unidade de processamento 2820 ou a memória 44) e uma unidade de processamento gráfico (que é implementada, por exemplo, pela unidade de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao buffer de imagem. A unidade de processamento gráfico pode incluir o decodificador de vídeo 30 implementado usando o circuito lógico 47, para implementar vários módulos descritos com referência à Figura 4 e / ou qualquer outro sistema ou subsistema decodificador descrito neste relatório descritivo.
[00104] Em alguns exemplos, a antena 42 do sistema de codificação de vídeo 40 pode ser configurada para receber o fluxo de bits codificado dos dados de vídeo. Conforme descrito, o fluxo de bits codificado pode incluir dados, um indicador, um valor de índice, dados de seleção de modo, ou semelhantes que estão relacionados à codificação de quadro de vídeo e que são descritos neste relatório descritivo, por exemplo, dados relacionados ao particionamento de codificação (por exemplo, um coeficiente de transformada ou um coeficiente de transformada quantizado, um indicador opcional (como descrito) e / ou dados que definem o particionamento de codificação). O sistema de codificação de vídeo 40 pode incluir ainda o decodificador de vídeo 30 que é acoplado à antena 42 e que é configurado para decodificar o fluxo de bits codificado. O dispositivo de exibição 45 é configurado para apresentar um quadro de vídeo. Codificador e Método de Codificação
[00105] A Figura 3 é um diagrama de blocos esquemático / conceitual de um exemplo de um codificador de vídeo 20 configurado para implementar as tecnologias deste pedido (esta divulgação). No exemplo da Figura 3, o codificador de vídeo 20 inclui uma unidade de cálculo residual 204, uma unidade de processamento de transformada 206, uma unidade de quantização 208, uma unidade de quantização inversa 210, uma unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, um buffer 216, uma unidade de filtro de loop 220, um buffer de imagens decodificadas (decoded picture buffer, DPB) 230, uma unidade de processamento de predição 260 e uma unidade de codificação de entropia 270. A unidade de processamento de predição 260 pode incluir uma unidade de interpredição 244, uma unidade de intrapredição 254 e uma unidade de seleção de modo 262. A unidade de interpredição 244 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostrada na figura). O codificador de vídeo 20 mostrado na Figura 3 também pode ser referido como um codificador de vídeo híbrido ou um codificador de vídeo baseado em um codec de vídeo híbrido.
[00106] Por exemplo, a unidade de cálculo residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208, a unidade de processamento de predição 260 e a unidade de codificação de entropia 270 formam um percurso de sinal para frente do codificador 20, enquanto, por exemplo, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o buffer 216, o filtro de loop 220, o buffer de imagens decodificadas (decoded picture buffer, DPB) 230 e a unidade de processamento de predição 260 formam um percurso de sinal para trás do codificador. O percurso de sinal para trás do codificador corresponde a um percurso de sinal de um decodificador (consulte o decodificador 30 na Figura 4).
[00107] O codificador 20 recebe, por exemplo, através de uma entrada 202, uma imagem 201 ou um bloco 203 da imagem 201, por exemplo, uma imagem em uma sequência de imagens formando um vídeo ou uma sequência de vídeo. O bloco de imagem 203 também pode ser referido como um bloco de imagem atual ou um bloco de imagem a ser codificado. A imagem 201 pode ser referida como uma imagem atual ou uma imagem a ser codificada (particularmente na codificação de vídeo, para distinguir a imagem atual de outras imagens, as outras imagens são, por exemplo, imagens previamente codificadas e / ou decodificadas em uma mesma sequência de vídeo, ou seja, a sequência de vídeo que também inclui a imagem atual). Particionamento
[00108] Uma modalidade do codificador 20 pode incluir uma unidade de particionamento (não mostrada na Figura 3), configurada para particionar a imagem 201 em uma pluralidade de blocos, como o bloco 203. A imagem 201 é geralmente particionada em uma pluralidade de blocos não sobrepostos. A unidade de particionamento pode ser configurada para usar um mesmo tamanho de bloco para todas as imagens na sequência de vídeo e uma grade correspondente definindo o tamanho de bloco, ou alterar um tamanho de bloco entre imagens ou subconjuntos ou grupos de imagens, e particionar cada imagem em blocos correspondentes.
[00109] Em um exemplo, a unidade de processamento de predição 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das tecnologias de particionamento descritas acima.
[00110] Como a imagem 201, o bloco 203 também é ou pode ser considerado como um arranjo bidimensional ou matriz de amostras com valores de luma (valores de amostra), embora um tamanho do bloco 203 seja menor do que um tamanho da imagem 201. Em outras palavras, o bloco 203 pode incluir, por exemplo, um arranjo de amostra (por exemplo, um arranjo de luma em um caso de uma imagem monocromática 201), três arranjos de amostra (por exemplo, um arranjo de luma e dois arranjos de croma em um caso de uma imagem colorida), ou qualquer outra quantidade e / ou tipo de arranjos dependendo de um formato de cor aplicado. Uma quantidade de amostras nas direções horizontal e vertical (ou eixos) do bloco 203 define um tamanho do bloco 203.
[00111] O codificador 20 mostrado na Figura 3 é configurado para codificar a imagem 201 bloco por bloco, por exemplo, realizar codificação e predição em cada bloco 203. Cálculo Residual
[00112] A unidade de cálculo residual 204 é configurada para calcular um bloco residual 205 com base no bloco de imagem 203 e um bloco de predição 265 (detalhes sobre o bloco de predição 265 são fornecidos abaixo), por exemplo, por subtrair valores de amostra do bloco de predição 265 a partir de valores de amostra do bloco de imagem 203 amostra por amostra (sample by sample), para obter o bloco residual 205 em um domínio de amostra.
Transformada
[00113] A unidade de processamento de transformada 206 é configurada para aplicar uma transformada, por exemplo, uma transformada discreta de cosseno (discrete cosine transform, DCT) ou uma transformada discreta de seno (discrete sine transform, DST), para amostrar valores do bloco residual 205 para obter a coeficientes de transformada 207 em um domínio de transformada. O coeficiente de transformada 207 também pode ser referido como um coeficiente residual de transformada e representa o bloco residual 205 no domínio de transformada.
[00114] A unidade de processamento de transformada 206 pode ser configurada para aplicar aproximações inteiras de DCT / DST, tais como transformada especificadas em HEVC / H.265. Em comparação com uma transformada DCT ortogonal, essa aproximação de inteiro é normalmente escalada por um fator. Para preservar uma norma de um bloco residual que é processado usando as transformadas direta e inversa, a aplicação de um fator de escala adicional é parte de um processo de transformada. O fator de escala é geralmente escolhido com base em algumas restrições. Por exemplo, o fator de escala é uma potência de dois para uma operação de deslocamento, uma profundidade de bit do coeficiente de transformada, ou uma compensação entre precisão e custos de implementação. Por exemplo, um fator de escala específico é especificado para a transformada inversa, por exemplo, a unidade de processamento de transformada inversa 212 em um lado de decodificador 30 (e uma transformada inversa correspondente por, por exemplo, a unidade de processamento de transformada inversa 212 em um lado de codificador 20),
e correspondentemente, um fator de escala correspondente pode ser especificado para a transformada direta pela unidade de processamento de transformada 206 no lado de codificador
20. Quantização
[00115] A unidade de quantização 208 é configurada para quantizar os coeficientes de transformada 207 para obter coeficientes de transformada quantizados 209, por exemplo, aplicando quantização escalar ou quantização vetorial. O coeficiente de transformada quantizado 209 também pode ser referido como um coeficiente residual quantizado 209. Um processo de quantização pode reduzir uma profundidade de bit relacionada a alguns ou todos os coeficientes de transformada
207. Por exemplo, um coeficiente de transformada de n bits pode ser arredondado para baixo para um coeficiente de transformada de m bits durante a quantização, onde n é maior que m. Um grau de quantização pode ser modificado por ajustar um parâmetro de quantização (quantization parameter, QP). Por exemplo, para a quantização escalar, diferentes escalas podem ser aplicadas para alcançar a quantização mais fina ou mais grosseira. Uma etapa de quantização menor corresponde a uma quantização mais fina, e uma etapa de quantização maior corresponde a uma quantização mais grosseira. Uma etapa de quantização apropriada pode ser indicada pelo parâmetro de quantização (quantization parameter, QP). Por exemplo, o parâmetro de quantização pode ser um índice para um conjunto predefinido de etapas de quantização apropriadas. Por exemplo, um parâmetro de quantização menor pode corresponder a quantização mais fina (uma etapa de quantização menor) e um parâmetro de quantização maior pode corresponder a quantização mais grosseira (uma etapa de quantização maior) ou vice-versa. A quantização pode incluir divisão por uma etapa de quantização e quantização correspondente ou quantização inversa, por exemplo, realizada pela unidade de quantização inversa 210, ou pode incluir multiplicação por uma etapa de quantização. Em modalidades de acordo com alguns padrões, como o HEVC, um parâmetro de quantização pode ser usado para determinar a etapa de quantização. Geralmente, a etapa de quantização pode ser calculada com base em um parâmetro de quantização usando uma aproximação de ponto fixo de uma equação incluindo divisão. Um fator de escala adicional pode ser introduzido para quantização e desquantização para restaurar a norma do bloco residual, onde a norma do bloco residual pode ser modificada por causa de uma escala usada na aproximação de ponto fixo da equação para a etapa de quantização e o parâmetro de quantização. Em uma implementação de exemplo, as escalas da transformada inversa e da desquantização podem ser combinadas. Alternativamente, uma tabela de quantização personalizada pode ser usada e sinalizada a partir do codificador para o decodificador, por exemplo, em um fluxo de bits. A quantização é uma operação com perdas, onde uma perda aumenta com o aumento da etapa de quantização.
[00116] A unidade de quantização inversa 210 é configurada para aplicar a quantização inversa da unidade de quantização 208 a um coeficiente quantizado para obter um coeficiente desquantizado 211, por exemplo, aplicar, com base em ou usando uma mesma etapa de quantização que a unidade de quantização 208, o inverso de um esquema de quantização aplicado pela unidade de quantização 208. O coeficiente desquantizado 211 também pode ser referido como um coeficiente residual desquantizado 211 e corresponde ao coeficiente de transformada 207, embora o coeficiente desquantizado 211 seja geralmente diferente do coeficiente de transformada devido a uma perda causada pela quantização.
[00117] A unidade de processamento de transformada inversa 212 é configurada para aplicar uma transformada inversa da transformada aplicada pela unidade de processamento de transformada 206, por exemplo, uma transformada discreta de cosseno inversa (discrete cosine transform, DCT) ou uma transformada discreta de seno inversa (discrete sine transform, DST), para obter um bloco de transformada inversa 213 no domínio de amostra. O bloco de transformada inversa 213 também pode ser referido como um bloco desquantizado de transformada inversa 213 ou um bloco residual de transformada inversa 213.
[00118] A unidade de reconstrução 214 (por exemplo, um somador 214) é configurada para adicionar o bloco de transformada inversa 213 (isto é, o bloco residual reconstruído 213) ao bloco de predição 265, por exemplo, por adicionar valores de amostra do bloco residual reconstruído 213 e os valores de amostra do bloco de predição 265, para obter um bloco reconstruído 215 no domínio de amostra.
[00119] Opcionalmente, uma unidade de buffer 216 (“buffer” 216 para abreviar) de, por exemplo, o buffer de linha 216, é configurada para armazenar em buffer ou armazenar o bloco reconstruído 215 e um valor de amostra correspondente, por exemplo, para intrapredição. Em outras modalidades, o codificador pode ser configurado para usar um bloco reconstruído não filtrado e / ou um valor de amostra correspondente que são / é armazenado na unidade de buffer 216, para qualquer tipo de estimativa e / ou predição, por exemplo, intrapredição.
[00120] Por exemplo, em uma modalidade, o codificador 20 pode ser configurado de modo que a unidade de buffer 216 seja configurada para armazenar o bloco reconstruído 215 não apenas usado para intrapredição 254, mas também usado para a unidade de filtro de loop 220 (não mostrada na Figura 3), e / ou de modo que, por exemplo, a unidade de buffer 216 e o buffer de imagens decodificadas 230 formem um buffer. Em outras modalidades, um bloco filtrado 221 e / ou um bloco ou uma amostra a partir do buffer de imagens decodificadas 230 (o bloco ou amostra não é mostrado na Figura 3) são / é usado como uma entrada ou uma base para a unidade de intrapredição
254.
[00121] A unidade de filtro de loop 220 (“filtro de loop” 220 para abreviar) é configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221, para suavizar transições de amostra ou melhorar a qualidade de vídeo. A unidade de filtro de loop 220 se destina a representar um ou mais filtros de loop incluindo, por exemplo, um filtro de desbloqueio, um filtro de deslocamento adaptativo de amostra (sample-adaptive offset, SAO), e outro filtro, como um filtro bilateral, um filtro de loop adaptativo (adaptive loop filter, ALF), um filtro de nitidez ou suavização, ou um filtro colaborativo. Embora a unidade de filtro de loop 220 seja mostrada na Figura 3 como um filtro em loop, em outras configurações, a unidade de filtro de loop 220 pode ser implementada como um filtro pós-loop. O bloco filtrado 221 também pode ser referido como um bloco reconstruído filtrado 221. O buffer de imagens decodificadas 230 pode armazenar um bloco codificado reconstruído após a unidade de filtro de loop 220 realizar uma operação de filtragem no bloco codificado reconstruído.
[00122] Em uma modalidade, o codificador 20 (correspondentemente, a unidade de filtro de loop 220) pode ser configurado para emitir um parâmetro de filtro de loop (por exemplo, informações de deslocamento adaptativo de amostra), por exemplo, diretamente ou após codificação de entropia realizada pela unidade de codificação de entropia 270 ou qualquer outra unidade de codificação de entropia, de modo que, por exemplo, o decodificador 30 possa receber e aplicar o mesmo parâmetro de filtro de loop para decodificação.
[00123] O buffer de imagens decodificadas (decoded picture buffer, DPB) 230 pode ser uma memória de imagem de referência que armazena dados de imagem de referência para uso na codificação de dados de vídeo pelo codificador de vídeo 20. O DPB 230 pode ser formado por qualquer um de uma variedade de dispositivos de memória tal como uma memória de acesso aleatório dinâmica (dynamic random access memory, DRAM) (incluindo uma DRAM síncrona (synchronous DRAM, SDRAM), uma RAM magnetorresistiva (magnetoresistive RAM, MRAM), uma RAM resistiva (resistive RAM, RRAM)), ou outro tipo de dispositivo de memória. O DPB 230 e o buffer 216 podem ser fornecidos por um mesmo dispositivo de memória ou dispositivos de memória separados. Em um exemplo, o buffer de imagens decodificadas (decoded picture buffer, DPB) 230 é configurado para armazenar o bloco filtrado 221. O buffer de imagens decodificadas 230 pode ainda ser configurado para armazenar outro bloco previamente filtrado, por exemplo, um bloco previamente reconstruído e filtrado 221, da mesma imagem atual ou de uma imagem diferente, por exemplo, uma imagem previamente reconstruída, e pode fornecer uma imagem totalmente reconstruída anteriormente, ou seja, decodificada (e um bloco de referência e amostra correspondentes) e / ou uma imagem atual parcialmente reconstruída (e um bloco de referência e amostra correspondentes), por exemplo, para interpredição. Em um exemplo, se o bloco reconstruído 215 for reconstruído sem filtragem em loop, o buffer de imagens decodificadas (decoded picture buffer, DPB) 230 é configurado para armazenar o bloco reconstruído 215.
[00124] A unidade de processamento de predição 260, também conhecida como uma unidade de processamento de predição de bloco 260, é configurada para receber ou obter o bloco 203 (um bloco atual 203 da imagem atual 201) e dados de imagem reconstruídos, por exemplo, amostras de referência da mesma (atual) imagem a partir do buffer 216 e / ou dados de imagem de referência 231 de uma ou mais imagens previamente decodificadas a partir do buffer de imagens decodificadas 230, e processar tais dados para predição, para ser específico, para fornecer o bloco de predição 265 que pode ser um bloco de interpredição 245 ou um bloco de intrapredição 255.
[00125] A unidade de seleção de modo 262 pode ser configurada para selecionar um modo de predição (por exemplo, um modo de intra ou interpredição) e / ou um bloco de predição correspondente 245 ou 255 para ser usado como o bloco de predição 265, para cálculo do bloco residual 205 e para reconstrução do bloco reconstruído 215.
[00126] Em uma modalidade, a unidade de seleção de modo 262 pode ser configurada para selecionar o modo de predição (por exemplo, a partir de modos de predição suportados pela unidade de processamento de predição 260), onde o modo de predição fornece uma melhor correspondência ou um resíduo mínimo (o resíduo mínimo significa melhor compressão para transmissão ou armazenamento), ou fornece sobrecargas de sinalização mínimas (as sobrecargas de sinalização mínimas significam melhor compressão para transmissão ou armazenamento), ou considera ou equilibra ambos. A unidade de seleção de modo 262 pode ser configurada para determinar o modo de predição com base na otimização de distorção de taxa (rate distortion optimization, RDO), para ser específico, selecionar um modo de predição que fornece otimização de distorção de taxa mínima ou selecionar um modo de predição para o qual a distorção de taxa pelo menos satisfaz um critério de seleção de modo de predição.
[00127] O seguinte descreve em detalhes o processamento de predição realizado (por exemplo, pela unidade de processamento de predição 260) e a seleção de modo realizada (por exemplo, pela unidade de seleção de modo 262) por um exemplo do codificador 20.
[00128] Conforme descrito acima, o codificador 20 é configurado para determinar ou selecionar um modo de predição ótimo ou ideal a partir de um conjunto de modos de predição (predeterminados). O conjunto de modos de predição pode incluir, por exemplo, um modo de intrapredição e / ou um modo de interpredição.
[00129] Um conjunto de modos de intrapredição pode incluir 35 modos de intrapredição diferentes, pode incluir
67 modos de intrapredição diferentes, ou pode incluir um modo de intrapredição definido em H.266 em desenvolvimento.
[00130] Um conjunto de modos de interpredição depende das imagens de referência disponíveis (nomeadamente, por exemplo, pelo menos algumas imagens decodificadas armazenadas no DBP 230, como descrito acima) e outros parâmetros de interpredição, por exemplo, depende se uma imagem de referência inteira ou apenas uma parte da imagem de referência, por exemplo, uma região de janela de pesquisa em torno de uma região do bloco de imagem atual, é usada para pesquisar um bloco de referência de correspondência, e / ou, por exemplo, depende se a interpolação de amostra, como interpolação de meio pel e / ou um quarto de pel é aplicada.
[00131] Além dos modos de predição anteriores, um modo de salto e / ou um modo direto também pode ser aplicado.
[00132] A unidade de processamento de predição 260 pode ainda ser configurada para particionar o bloco 203 em partições de bloco menores ou sub-blocos, por exemplo, usando iterativamente particionamento de árvore quádrupla (quad- tree, QT), particionamento de árvore binária (binary-tree, BT), particionamento de árvore tripla (triple-tree, TT), ou qualquer combinação dos mesmos, e realizar, por exemplo, predição em cada uma das partições de bloco ou sub-blocos. A seleção de modo inclui a seleção de uma estrutura de árvore do bloco particionado 203 e a seleção de um modo de predição usado para cada uma das partições de bloco ou sub-blocos.
[00133] A unidade de interpredição 244 pode incluir uma unidade de estimativa de movimento (motion estimation, ME) (não mostrada na Figura 3) e uma unidade de compensação de movimento (motion compensation, MC) (não mostrada na Figura 3). A unidade de estimativa de movimento é configurada para receber ou obter o bloco de imagem 203 (o bloco de imagem atual 203 da imagem atual 201) e uma imagem decodificada 231, ou pelo menos um ou mais blocos reconstruídos anteriormente, por exemplo, um ou mais blocos reconstruídos de outras / diferentes imagens previamente decodificadas 231, para estimativa de movimento. Por exemplo, uma sequência de vídeo pode incluir a imagem atual e uma imagem previamente decodificada 31 ou, em outras palavras, a imagem atual e a imagem previamente decodificada 31 podem fazer parte ou formar uma sequência de imagens que formam a sequência de vídeo.
[00134] Por exemplo, o codificador 20 pode ser configurado para selecionar um bloco de referência a partir de uma pluralidade de blocos de referência de uma mesma imagem ou imagens diferentes em uma pluralidade de outras imagens e fornecer, para a unidade de estimativa de movimento (não mostrada na Figura 3), uma imagem de referência e / ou fornecer um deslocamento (um deslocamento espacial) entre uma localização (coordenadas X e Y) do bloco de referência e uma localização do bloco atual como um parâmetro de interpredição. Este deslocamento também é conhecido como vetor de movimento (motion vector, MV).
[00135] A unidade de compensação de movimento é configurada para obter, por exemplo, receber o parâmetro de interpredição, e realizar interpredição com base em ou usando o parâmetro de interpredição, para obter o bloco de interpredição 245. Compensação de movimento realizada pela unidade de compensação de movimento (não mostrado na Figura
3) pode incluir extrair ou gerar um bloco de predição com base em um vetor de movimento / bloco determinado através da estimativa de movimento (a interpolação pode ser realizada em uma precisão de subamostra). A filtragem de interpolação pode gerar amostras de adicionais a partir de amostras de amostra conhecidas, aumentando assim potencialmente uma quantidade de blocos de predição candidatos que podem ser usados para codificar um bloco de imagem. Ao receber um vetor de movimento para uma PU do bloco de imagem atual, uma unidade de compensação de movimento 246 pode localizar um bloco de predição para o qual o vetor de movimento aponta em uma das listas de imagens de referência. A unidade de compensação de movimento 246 também pode gerar um elemento de sintaxe associado a um bloco e uma fatia de vídeo, de modo que o decodificador de vídeo 30 use o elemento de sintaxe para decodificar o bloco de imagem da fatia de vídeo.
[00136] A unidade de intrapredição 254 é configurada para obter, por exemplo, receber, um bloco de imagem 203 (o bloco de imagem atual) e um ou mais blocos reconstruídos anteriormente, por exemplo, blocos vizinhos reconstruídos, de uma mesma imagem para intraestimativa. Por exemplo, o codificador 20 pode ser configurado para selecionar um modo de intrapredição a partir de uma pluralidade de modos de intrapredição.
[00137] Em uma modalidade, o codificador 20 pode ser configurado para selecionar o modo de intrapredição de acordo com um critério de otimização, por exemplo, com base em um residual mínimo (por exemplo, um modo de intrapredição fornecendo o bloco de predição 255 que é mais semelhante ao bloco de imagem atual 203) ou distorção de taxa mínima.
[00138] A unidade de intrapredição 254 é ainda configurada para determinar o bloco de intrapredição 255 com base, por exemplo, em um parâmetro de intrapredição no modo de intrapredição selecionado. Em qualquer caso, depois de selecionar um modo de intrapredição para um bloco, a unidade de intrapredição 254 é ainda configurada para fornecer um parâmetro intrapredição, ou seja, informações indicando o modo de intrapredição selecionado para o bloco, para a unidade de codificação de entropia 270. Em um exemplo, a unidade de intrapredição 254 pode ser configurada para realizar qualquer combinação de tecnologias de intrapredição descritas abaixo.
[00139] A unidade de codificação de entropia 270 é configurada para aplicar (ou evitar a aplicação) um esquema ou algoritmo de codificação de entropia (por exemplo, um esquema de codificação de comprimento variável (variable length coding, VLC), um esquema de VLC adaptativa ao contexto (VLC adaptativa ao contexto, CAVLC), um esquema de codificação aritmética, codificação aritmética binária adaptativa ao contexto (context adaptive binary arithmetic coding, CABAC), codificação aritmética binária adaptativa ao contexto baseada na sintaxe (syntax-based context-adaptive binary arithmetic coding, SBAC), codificação de entropia de particionamento de intervalo de probabilidade (probability interval partitioning entropy, PIPE), ou outra metodologia ou técnica de codificação de entropia) para um ou todos os seguintes: o coeficiente quantizado 209, o parâmetro de interpredição, o parâmetro de intrapredição e / ou o parâmetro de filtro de loop, para obter os dados de imagem codificados 21 que podem ser emitidos através de uma saída
272, por exemplo, em uma forma de um fluxo de bits codificado
21. O fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30, ou arquivado para posterior transmissão ou recuperação pelo decodificador de vídeo 30. A unidade de codificação de entropia 270 pode ainda ser configurada para codificar por entropia outro elemento de sintaxe para uma fatia de vídeo atual que está sendo codificada.
[00140] Outra variante estrutural do codificador de vídeo 20 pode ser usada para codificar um fluxo de vídeo. Por exemplo, um codificador não baseado em transformada 20 pode quantizar diretamente um sinal residual sem a unidade de processamento de transformada 206 para alguns blocos ou quadros. Em outra implementação, o codificador 20 pode ter a unidade de quantização 208 e a unidade de quantização inversa 210 que são combinadas em uma única unidade.
[00141] A Figura 4 mostra um decodificador de vídeo 30 de exemplo, configurado para implementar as tecnologias deste pedido. O decodificador de vídeo 30 é configurado para receber dados de imagem codificados (por exemplo, um fluxo de bits codificado) 21 codificados, por exemplo, pelo codificador 20, para obter uma imagem decodificada 231. Em um processo de decodificação, o decodificador de vídeo 30 recebe dados de vídeo a partir do codificador de vídeo 20, por exemplo, um fluxo de bits de vídeo codificado que representa um bloco de imagem de uma fatia de vídeo codificada e um elemento de sintaxe associado.
[00142] No exemplo da Figura 4, o decodificador 30 inclui uma unidade de decodificação de entropia 304, uma unidade de quantização inversa 310, uma unidade de processamento de transformada inversa 312, uma unidade de reconstrução 314 (por exemplo, um somador 314), um buffer 316, um filtro de loop 320, um buffer de imagens decodificadas 330 e uma unidade de processamento de predição
360. A unidade de processamento de predição 360 pode incluir uma unidade de interpredição 344, uma unidade de intrapredição 354 e uma unidade de seleção de modo 362. Em alguns exemplos, o decodificador de vídeo 30 pode realizar um processo de decodificação em geral recíproco ao processo de codificação descrito com referência ao codificador de vídeo 20 na Figura 3.
[00143] A unidade de decodificação de entropia 304 é configurada para realizar decodificação de entropia nos dados de imagem codificados 21 para obter, por exemplo, um coeficiente quantizado 309 e / ou um parâmetro de codificação decodificado (não mostrado na Figura 4), por exemplo, qualquer um ou todos de um parâmetro de interpredição, um parâmetro de intrapredição, um parâmetro de filtro de loop, e / ou outro elemento de sintaxe (que são decodificados). A unidade de decodificação de entropia 304 é ainda configurada para encaminhar o parâmetro de interpredição, o parâmetro de intrapredição, e / ou o outro elemento de sintaxe para a unidade de processamento de predição 360. O decodificador de vídeo 30 pode receber elementos de sintaxe em um nível de fatia de vídeo e / ou um nível de bloco de vídeo.
[00144] A unidade de quantização inversa 310 pode ter a mesma função que a unidade de quantização inversa 110. A unidade de processamento de transformada inversa 312 pode ter a mesma função que a unidade de processamento de transformada inversa 212. A unidade de reconstrução 314 pode ter a mesma função que a unidade de reconstrução 214. O buffer 316 pode ter a mesma função que o buffer 216. O filtro de loop 320 pode ter a mesma função que o filtro de loop
220. O buffer de imagens decodificadas 330 pode ter a mesma função que o buffer de imagens decodificadas 230.
[00145] A unidade de processamento de predição 360 pode incluir a unidade de interpredição 344 e a unidade de intrapredição 354. A unidade de interpredição 344 pode ser semelhante à unidade de interpredição 244 em funções, e a unidade de intrapredição 354 pode ser semelhante à unidade de intrapredição 254 em funções. A unidade de processamento de predição 360 é geralmente configurada para realizar predição de bloco e / ou obter um bloco de predição 365 a partir dos dados codificados 21, e receber ou obter (explicitamente ou implicitamente) um parâmetro e / ou informações relacionadas à predição sobre um modo de predição selecionado, por exemplo, a partir da unidade de decodificação de entropia 304.
[00146] Quando uma fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de intrapredição 354 da unidade de processamento de predição 360 é configurada para gerar o bloco de predição 365 para um bloco de imagem da fatia de vídeo atual com base em um modo de intrapredição sinalizado e dados que são a partir de um bloco previamente decodificado de um quadro ou imagem atual. Quando um quadro de vídeo é codificado como uma fatia intercodificada (B ou P), a unidade de interpredição 344 (por exemplo, uma unidade de compensação de movimento) da unidade de processamento de predição 360 é configurada para gerar o bloco de predição 365 para um bloco de vídeo da fatia de vídeo atual com base em um vetor de movimento e outro elemento de sintaxe que é recebido a partir da unidade de decodificação de entropia
304. Para interpredição, o bloco de predição pode ser gerado a partir de uma das imagens de referência em uma lista de imagens de referência. O decodificador de vídeo 30 pode construir listas de quadros de referência, uma lista 0 e uma lista 1, usando uma tecnologia de construção padrão e com base em imagens de referência armazenadas no DPB 330.
[00147] A unidade de processamento de predição 360 é configurada para determinar as informações de predição para o bloco de vídeo da fatia de vídeo atual por analisar o vetor de movimento e o outro elemento de sintaxe, e usar as informações de predição para gerar um bloco de predição para o bloco de vídeo atual que está sendo decodificado. Por exemplo, a unidade de processamento de predição 360 determina, usando alguns elementos de sintaxe recebidos, um modo de predição (por exemplo, intra ou interpredição) para codificar o bloco de vídeo na fatia de vídeo, um tipo de fatia de interpredição (por exemplo, uma fatia B, uma fatia P ou uma fatia GPB), informações de construção de uma ou mais das listas de imagens de referência para a fatia, um vetor de movimento de cada bloco de vídeo codificado para a fatia, um status de interpredição de cada bloco de vídeo intercodificado na fatia, e outras informações, para decodificar o bloco de vídeo na fatia de vídeo atual.
[00148] A unidade de quantização inversa 310 pode ser configurada para realizar quantização inversa (ou seja, desquantização) em um coeficiente de transformada quantizado fornecido no fluxo de bits e decodificado pela unidade de decodificação de entropia 304. Um processo de quantização inversa pode incluir: usando um parâmetro de quantização calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo, determinar um grau de quantização que deve ser aplicado e, da mesma forma, um grau de quantização inversa que deve ser aplicado.
[00149] A unidade de processamento de transformada inversa 312 é configurada para aplicar uma transformada inversa (por exemplo, um DCT inversa, uma transformada de inteiro inversa, ou um processo de transformada inversa conceitualmente semelhante) a um coeficiente de transformada, para gerar um bloco residual em um domínio de amostra.
[00150] A unidade de reconstrução 314 (por exemplo, o somador 314) é configurada para adicionar um bloco de transformada inversa 313 (ou seja, um bloco residual reconstruído 313) ao bloco de predição 365, por exemplo, por adicionar valores de amostra do bloco residual reconstruído 313 e valores de amostra do bloco de predição 365, para obter um bloco reconstruído 315 em um domínio de amostra.
[00151] A unidade de filtro de loop 320 (durante um loop de codificação ou após um loop de codificação) é configurada para filtrar o bloco reconstruído 315 para obter um bloco filtrado 321, para suavizar a transição de amostra ou melhorar a qualidade de vídeo. Em um exemplo, a unidade de filtro de loop 320 pode ser configurada para realizar qualquer combinação de tecnologias de filtragem descritas abaixo. A unidade de filtro de loop 320 se destina a representar um ou mais filtros de loop, como um filtro de desbloqueio, um filtro de deslocamento adaptativo de amostra (sample-adaptive offset, SAO) ou outro filtro, por exemplo,
um filtro bilateral, um filtro de loop adaptativo (adaptive loop filter, ALF), um filtro de nitidez ou suavização, ou um filtro colaborativo. Embora a unidade de filtro de loop 320 seja mostrada como um filtro em loop na Figura 4, em outra configuração, a unidade de filtro de loop 320 pode ser implementada como um filtro pós-loop.
[00152] O bloco de vídeo decodificado 321 em um dado quadro ou imagem é então armazenado no buffer de imagens decodificadas 330 que armazena uma imagem de referência usada para compensação de movimento subsequente.
[00153] O decodificador 30 é configurado para, por exemplo, emitir uma imagem decodificada 31 por meio de uma saída 332, para apresentação a um usuário ou visualização por um usuário.
[00154] Outra variante do decodificador de vídeo 30 pode ser usada para decodificar um fluxo de bits comprimido. Por exemplo, o decodificador 30 pode gerar um fluxo de vídeo de saída sem a unidade de filtro de loop 320. Por exemplo, um decodificador não baseado em transformada 30 pode quantizar inversamente diretamente um sinal residual sem a unidade de processamento de transformada inversa 312 para alguns blocos ou quadros. Em outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inversa 312 combinadas em uma única unidade.
[00155] A Figura 5 é um diagrama esquemático de uma estrutura de um dispositivo de codificação de vídeo 400 (por exemplo, um dispositivo de codificação de vídeo 400 ou um dispositivo de decodificação de vídeo 400) de acordo com uma modalidade deste pedido. O dispositivo de codificação de vídeo 400 é adequado para implementar as modalidades descritas neste relatório descritivo. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um decodificador de vídeo (por exemplo, o decodificador de vídeo 30 na Figura 1) ou um codificador de vídeo (por exemplo, o codificador de vídeo 20 na Figura 1). Em outra modalidade, o dispositivo de codificação de vídeo 400 pode ser um ou mais componentes no decodificador de vídeo 30 na Figura 1 ou o codificador de vídeo 20 na Figura 1.
[00156] O dispositivo de codificação de vídeo 400 inclui: uma porta de entrada 410 e uma unidade de recepção (Rx) 420 para receber dados; um processador, uma unidade lógica ou uma unidade de processamento central (CPU) 430 para processar dados; uma unidade de transmissor (Tx) 440 e uma porta de saída 450 para transmitir dados; e uma memória 460 para armazenar dados. O dispositivo de codificação de vídeo 400 pode incluir ainda um componente de conversão ótico-para-elétrico e um componente elétrico-para-ótico (EO) acoplado à porta de entrada 410, a unidade de receptor 420, a unidade de transmissor 440 e a porta de saída 450 para saída ou entrada de sinais óticos ou elétricos.
[00157] O processador 430 é implementado por hardware e software. O processador 430 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, um processador de múltiplos núcleos), FPGAs, ASICs e DSPs. O processador 430 se comunica com a porta de entrada 410, a unidade de receptor 420, a unidade de transmissor 440, a porta de saída 450 e a memória 460. O processador 430 inclui um módulo de codificação 470 (por exemplo, um módulo de codificação 470 ou um módulo de decodificação 470). O módulo de codificação
/ decodificação 470 implementa as modalidades divulgadas acima. Por exemplo, o módulo de codificação / decodificação 470 implementa, processa ou fornece várias operações de codificação. Portanto, o módulo de codificação / decodificação 470 melhora substancialmente as funções do dispositivo de codificação de vídeo 400 e afeta a transformada do dispositivo de codificação de vídeo 400 para um estado diferente. Alternativamente, o módulo de codificação / decodificação 470 é implementado como uma instrução armazenada na memória 460 e executada pelo processador 430.
[00158] A memória 460 inclui um ou mais discos, unidades de fita, e unidades de estado sólido, e pode ser usada como um dispositivo de armazenamento de dados de sobrefluxo, para armazenar programas quando tais programas são selecionados para execução, e para armazenar instruções e dados que são lidos durante execução de programa. A memória 460 pode ser volátil e / ou não volátil, e pode ser uma memória somente de leitura (ROM), uma memória de acesso aleatório (RAM), uma memória endereçável de conteúdo ternário (ternary content-addressable memory, TCAM) e / ou uma memória de acesso aleatório estática (SRAM).
[00159] A Figura 6 é um diagrama de blocos simplificado de um aparelho 500 que pode ser usado como um ou dois do dispositivo de origem 12 e o dispositivo de destino 14 na Figura 1 de acordo com uma modalidade de exemplo. O aparelho 500 pode implementar as tecnologias neste pedido. O aparelho 500 configurado para implementar predição de bloco de croma pode estar na forma de um sistema de computação incluindo uma pluralidade de dispositivos de computação, ou pode estar na forma de um único dispositivo de computação, como um telefone móvel, um tablet, um laptop, um notebook ou um computador de mesa.
[00160] Um processador 502 no aparelho 500 pode ser uma unidade de processamento central. Alternativamente, o processador 502 pode ser qualquer outro tipo de dispositivo ou uma pluralidade de dispositivos, capaz de manipular ou processar informações existentes ou a serem desenvolvidas no futuro. Como mostrado na Figura 6, embora as implementações divulgadas possam ser praticadas usando um único processador, como o processador 502, vantagens em velocidade e eficiência podem ser alcançadas usando mais de um processador.
[00161] Em uma implementação, uma memória 504 no aparelho 500 pode ser um dispositivo de memória somente de leitura (Read Only Memory, ROM) ou um dispositivo de memória de acesso aleatório (random access memory, RAM). Qualquer outro tipo adequado de dispositivo de armazenamento pode ser usado como a memória 504. A memória 504 pode incluir código e dados 506 que são acessados pelo processador 502 através de um barramento 512. A memória 504 pode incluir ainda um sistema operacional 508 e um programa de aplicação 510. O programa de aplicação 510 inclui pelo menos um programa que permite ao processador 502 realizar o método descrito neste relatório descritivo. Por exemplo, o programa de aplicação 510 pode incluir aplicações 1 a N, e as aplicações 1 a N incluem ainda uma aplicação de codificação de vídeo que realiza o método descrito neste relatório descritivo. O aparelho 500 pode ainda incluir uma memória adicional na forma de uma memória secundária 514. A memória secundária
514 pode ser, por exemplo, um cartão de memória usado com um dispositivo de computação móvel. Como uma sessão de comunicação de vídeo pode incluir uma grande quantidade de informações, as informações podem ser total ou parcialmente armazenadas na memória secundária 514 e carregadas na memória 504 para processamento conforme necessário.
[00162] O aparelho 500 pode ainda incluir um ou mais dispositivos de saída, por exemplo, uma tela de exibição
518. Em um exemplo, a tela de exibição 518 pode ser uma tela de exibição sensível ao toque que combina uma tela de exibição com um elemento sensível ao toque que é operável para detectar uma entrada de toque. A tela de exibição 518 pode ser acoplada ao processador 502 através do barramento
512. Além da tela de exibição 518, outro dispositivo de saída que permite a um usuário programar o aparelho 500 ou usar o aparelho 500 pode ainda ser fornecido, ou outro dispositivo de saída pode ser fornecido como uma alternativa à tela de exibição 518. Quando o dispositivo de saída é ou inclui uma tela de exibição, a tela de exibição pode ser implementada de várias maneiras, incluindo usando uma tela de exibição de cristal líquido (liquid crystal display, LCD), uma tela de exibição de tubo de raios catódicos (cathode-ray tube, CRT), uma tela de exibição de plasma, ou tela de exibição de diodo emissor de luz (light emitting diode, LED), como tela de exibição de LED orgânico (organic LED, OLED).
[00163] O aparelho 500 pode ainda incluir ou ser conectado a um dispositivo de sensoriamento de imagem 520. O dispositivo de sensoriamento de imagem 520 é, por exemplo, uma câmera ou qualquer outro dispositivo de sensoriamento de imagem 520 que pode detectar uma imagem e que existe ou será desenvolvido no futuro. A imagem é, por exemplo, uma imagem de um usuário que roda o aparelho 500. O dispositivo de sensoriamento de imagem 520 pode ser colocado diretamente de frente para o usuário que roda o aparelho 500. Em um exemplo, uma localização e um eixo ótico do dispositivo de sensoriamento de imagem 520 pode ser configurado, de modo que um campo de visão do dispositivo de sensoriamento de imagem 520 inclua uma região vizinha à tela de exibição 518 e a tela de exibição 518 possa ser vista a partir da região.
[00164] O aparelho 500 pode ainda incluir ou ser conectado a um dispositivo de sensoriamento de som 522. O dispositivo de sensoriamento de som 522 é, por exemplo, um microfone ou qualquer outro dispositivo de sensoriamento de som que pode detectar um som perto do aparelho 500 e que existe ou será desenvolvido no futuro. O dispositivo de sensoriamento de som 522 pode ser colocado diretamente de frente para o usuário operando o aparelho 500 e pode ser configurado para receber um som, por exemplo, uma voz ou outro som, feito pelo usuário quando o usuário roda o aparelho 500.
[00165] Embora o processador 502 e a memória 504 do aparelho 500 estejam representados na Figura 6 como sendo integrado em uma única unidade, outra configuração ainda pode ser usada. A execução do processador 502 pode ser distribuída em uma pluralidade de máquinas (cada máquina tem um ou mais processadores) que podem ser acopladas diretamente ou distribuídas em uma região local ou outra rede. A memória 504 pode ser distribuída em uma pluralidade de máquinas. Por exemplo, a memória 504 é uma memória ou memórias baseadas em rede em uma pluralidade de máquinas que rodam o aparelho
500. Embora representado como um único barramento aqui, o barramento 512 do aparelho 500 pode ser formado por uma pluralidade de barramentos. Além disso, a memória secundária 514 pode ser diretamente acoplada a outro componente do aparelho 500 ou pode ser acessada por meio de uma rede. Além disso, a memória secundária 514 pode incluir uma única unidade integrada, por exemplo, um cartão de memória ou uma pluralidade de unidades, por exemplo, uma pluralidade de cartões de memória. Portanto, o aparelho 500 pode ser implementado em uma ampla variedade de configurações.
[00166] Conforme descrito acima neste pedido, um vídeo colorido inclui ainda um componente de croma (U, V) além de um componente de luma (Y). Portanto, o componente de luma precisa ser codificado, e o componente de croma também precisa ser codificado. De acordo com diferentes métodos de amostragem do componente de luma e do componente de croma no vídeo colorido, geralmente existem YUV 4: 4: 4, YUV 4: 2: 2 e YUV 4: 2: 0. Como mostrado na Figura 7, uma cruz representa um ponto de amostragem do componente de luma e um círculo representa um ponto de amostragem do componente de croma.
[00167] Em um formato 4: 4: 4, um componente de croma não tem a resolução reduzida.
[00168] Em um formato 4: 2: 2, a redução de resolução horizontal 2: 1 é realizada em um componente de croma em relação a um componente de luma, e nenhuma redução de resolução vertical é realizada. Para cada dois pontos de amostragem U ou pontos de amostragem V, cada linha inclui quatro pontos de amostragem Y.
[00169] Em um formato 4: 2: 0, a redução de resolução horizontal 2: 1 é realizada em um componente de croma em relação a um componente de luma e a redução de resolução vertical 2: 1 é realizada no componente de croma em relação ao componente de luma.
[00170] YUV 4: 2: 0 é o mais comum. Quando uma imagem de vídeo usa o formato de amostragem YUV 4: 2: 0, se um componente de luma de um bloco de imagem é um bloco de imagem 2M x 2N, um componente de croma do bloco de imagem é um bloco de imagem M x N. Portanto, o componente de croma do bloco de imagem também é referido como um bloco de croma ou um bloco de componente de croma neste pedido. Este pedido é descrito usando YUV 4: 2: 0 como exemplo, mas outro método de amostragem para um componente de luma e um componente de croma também é aplicável a este pedido.
[00171] Neste pedido, um pixel em uma imagem (picture) de croma é referido como uma amostra de croma (chroma sample) ou um ponto de croma, para abreviar. Um pixel em uma imagem (picture) de luma é referido como uma amostra de luma (luma sample) ou um ponto de luma para abreviar.
[00172] Semelhante ao componente de luma, na intrapredição de croma, as amostras de fronteira de um bloco reconstruído vizinho em torno de um bloco de croma atual também são usadas como amostras de referência de um bloco atual. As amostras de referência são mapeadas para amostras no bloco de croma atual de acordo com um modo de predição específico, e são usadas como um valor de predição das amostras no bloco de croma atual. Uma diferença reside no fato de que, como a textura do componente de croma é geralmente relativamente simples, uma quantidade de modos de intrapredição para o componente de croma é geralmente menor que uma quantidade de modos de intrapredição para o componente de luma.
[00173] Um modo de predição de componente cruzado (cross-component prediction, CCP) também é referido como um modo de predição de componente cruzado (cross-component intra prediction, CCIP) ou um modo de predição de modelo linear de componente cruzado (CCLM). O modo de predição de CCLM também pode ser referido como um modo de modelo linear (linear model, LM) para abreviar. O modo de LM (abreviação de modelo linear ou modo linear) é um método de intrapredição de croma que usa correlação de textura entre luma e croma. LM usa um componente de luma reconstruído para derivar um valor de predição de um bloco de croma atual de acordo com o modelo linear, e pode usar a seguinte equação: predC  i, j     reci L  i, j    (1) onde α e β são ambos coeficientes de modelo linear, α é um coeficiente de escala, β é um fator de deslocamento, predC(i, j) é um valor de predição de amostras de croma em uma posição (i, j), e recL'(i, j) é um valor de amostra de reconstrução de luma na posição (i, j) obtido após um bloco de reconstrução de luma (que é referido como um bloco de luma correspondente para abreviar) correspondente ao bloco de croma atual ter resolução reduzida para resolução de componente de croma. Para um vídeo no formato YUV 4: 2: 0, uma resolução de um componente de luma é quatro vezes a resolução de um componente de croma (a largura do componente de luma é duas vezes a largura do componente de croma e a altura do componente de luma tem o dobro da altura do componente de croma). Para obter um bloco de luma com a mesma resolução de um bloco de croma, o componente de luma precisa ter a resolução reduzida para uma resolução de croma de acordo com um método de redução de resolução igual ao do componente de croma e, em seguida, o componente de luma é usado.
[00174] Os coeficientes de modelo linear α e β não precisam ser codificados para transmissão, mas são derivados usando amostras de fronteira de um bloco reconstruído vizinho do bloco de croma atual e amostras de luma em posições correspondentes das amostras de fronteira. A Figura 8 mostra uma modalidade do modo de predição de componente cruzado (cross-component prediction, CCP). Na Figura 8, recL é um bloco de luma reconstruído (um bloco de croma atual corresponde a um bloco de luma e amostras de referência vizinhas), recL' é um bloco de luma de resolução reduzida, e recC' é amostras de referência reconstruídas vizinhas do bloco de croma atual. Um tamanho do bloco de croma atual é W x H, e as amostras reconstruídas vizinhas em um lado superior e um lado esquerdo do bloco de croma atual são usadas como amostras de referência. O tamanho de um bloco de luma correspondente é 2W x 2H. O bloco de luma e as amostras de referência do bloco de luma têm a resolução reduzida para uma resolução de croma, para obter os blocos de amostra mostrados na Figura 8 (b). As amostras de referência vizinhas na Figura 8 (b) e Figura 8 (c) formam uma correspondência um a um.
[00175] Para facilidade de descrição, neste pedido, os lados superior e esquerdo vizinhos usados para calcular os coeficientes de modelo linear são chamados de modelo (template). O lado superior vizinho é referido como um modelo superior e o lado esquerdo vizinho é referido como um modelo esquerdo. Um ponto de amostragem de croma no modelo superior é referido como uma amostra de croma de modelo superior, e um ponto de amostragem de luma no modelo superior é referido como uma amostra de luma de modelo superior. Uma amostra de croma do modelo esquerdo e uma amostra de luma do modelo esquerdo podem ser obtidas por meio de um método semelhante. As amostras de luma de modelo correspondem um a um às amostras de croma de modelo, e os valores dos pontos de amostragem formam um par de valores.
[00176] Nesta modalidade deste pedido, o modelo indica um conjunto de amostras de luma ou amostras de croma usadas para calcular os coeficientes de modelo linear. As amostras de luma geralmente precisam ser obtidas por meio de redução de resolução (porque o componente de luma e o componente de croma têm resoluções diferentes), e são indicadas como amostras de luma. As amostras de croma (chroma samples) são geralmente amostras em uma linha superior ou duas linhas superiores, e amostras em uma coluna esquerda ou duas colunas esquerdas vizinhas ao bloco de croma atual. A Figura 9 é um diagrama esquemático de um modelo usando uma linha e uma coluna, e a Figura 10 é um diagrama esquemático de um modelo usando duas linhas e duas colunas.
[00177] O modo de LM pode usar efetivamente a correlação entre o componente de luma e o componente de croma. Comparado com um modo de predição diretiva, o modo de LM é mais flexível e fornece um sinal de predição mais preciso para o componente de croma.
[00178] Além disso, há também um modo de modelo linear de modelo múltiplo (Multiple model linear model, MMLM para abreviar), e há uma pluralidade de α e β. Dois modelos lineares são usados como exemplo. Existem dois conjuntos de coeficientes de modelo linear: 1 e β1, e 2 e β2.
[00179] Uma modalidade deste pedido fornece um método de predição de bloco de croma. Esta modalidade deste pedido ilustra um exemplo em que a intrapredição usa um CCLM. O seguinte descreve em detalhes um procedimento de processamento mostrado na Figura 11 com referência a uma implementação específica. Este processo existe tanto em um processo de codificação quanto em um processo de decodificação, e este processo pode ser o seguinte: etapa 1101: obter um valor de luma máximo e um valor de luma mínimo com base nas amostras de luma correspondentes às amostras vizinhas de um bloco de croma alvo, e obter um primeiro valor de croma correspondente ao valor de luma máximo e um segundo valor de croma correspondente ao valor de luma mínimo.
[00180] O bloco de croma alvo é qualquer bloco de croma que não seja codificado ou decodificado. As amostras vizinhas do bloco de croma alvo são amostras de referência de um bloco reconstruído vizinho ao bloco de croma alvo, como mostrado na Figura 9 e Figura 10.
[00181] Durante a implementação, quando a determinação é realizada até um bloco de croma atual (que pode ser referido como o bloco de croma alvo), um esquema de codificação do bloco de croma alvo pode ser determinado. Se o esquema de codificação for o CCLM, as amostras vizinhas do bloco de croma alvo podem ser determinadas, e o valor de luma máximo maxY e o valor de luma mínimo minY são obtidos com base nas amostras vizinhas. Além disso, um valor de croma (ou seja, o primeiro valor de croma maxC) correspondente ao valor de luma máximo e um valor de croma (ou seja, o segundo valor de croma minC) correspondente ao valor de luma mínimo pode ser determinado.
[00182] Deve ser notado que, o valor de croma correspondente ao valor de luma máximo refere-se a que, quando as amostras de luma são o valor de luma máximo, as amostras de croma são o primeiro valor de croma, e o valor de croma correspondente ao valor de luma mínimo refere-se a que, quando amostras de luma são o valor de luma mínimo, as amostras de croma são o segundo valor de croma.
[00183] Opcionalmente, o valor de luma máximo e o valor de luma mínimo podem ser determinados de várias maneiras. O seguinte fornece duas maneiras viáveis: maneira 1: Obter o valor de luma máximo e o valor de luma mínimo nas amostras de luma correspondentes às amostras vizinhas do bloco de croma alvo.
[00184] Durante a implementação, quando a determinação é realizada até o bloco de croma atual (que pode ser referido como o bloco de croma alvo), o esquema de codificação do bloco de croma alvo pode ser determinado. Se o esquema de codificação for o CCLM, as amostras vizinhas do bloco de croma alvo podem ser determinadas e, em seguida, o valor de luma máximo e o valor de luma mínimo nas amostras de luma correspondentes a essas amostras são determinados.
[00185] Na maneira 1, quando o primeiro valor de croma e o segundo valor de croma são determinados, um valor de croma de amostras de croma correspondentes às amostras de luma às quais o valor de luma máximo pertence pode ser determinado como o primeiro valor de croma, e um valor de croma das amostras de croma correspondentes às amostras de luma às quais o valor de luma mínimo pertence pode ser determinado como o segundo valor de croma.
[00186] Maneira 2: uma quantidade predefinida de amostras de luma correspondentes a uma quantidade predefinida de amostras vizinhas do bloco de croma alvo é dividida em um primeiro conjunto de amostras de luma e um segundo conjunto de amostras de luma. Uma quantidade de amostras de luma no primeiro conjunto de amostras de luma é a mesma que uma quantidade de amostras de luma no segundo conjunto de amostras de luma, e valores de luma das amostras de luma no primeiro conjunto de amostras de luma são maiores ou iguais aos valores de luma das amostras de luma no segundo conjunto de amostras de luma. O valor de luma máximo é determinado com base no primeiro conjunto de amostras de luma, e o valor de luma mínimo é determinado com base no segundo conjunto de amostras de luma.
[00187] Durante a implementação, quando a determinação é realizada até o bloco de croma atual (que pode ser referido como o bloco de croma alvo), o esquema de codificação do bloco de croma alvo pode ser determinado. Se o esquema de codificação for o CCLM, as amostras vizinhas do bloco de croma alvo podem ser determinadas. Em seguida, uma quantidade predefinida de amostras de croma é selecionada a partir de amostras de croma dessas amostras determinadas (por exemplo, a quantidade predefinida é 4, e há oito amostras de croma vizinhas em um lado superior do bloco de croma e oito amostras de croma vizinhas em um lado esquerdo do bloco de croma). Há um total de 16 amostras de croma. Uma amostra de croma pode ser selecionada a partir de cada quatro amostras de croma (uma amostra de croma é selecionada a partir de cada uma das primeiras quatro amostras de croma e as últimas quatro amostras de croma no lado superior, e uma amostra de croma é selecionada a partir de cada uma das quatro amostras de croma superiores e as quatro amostras de croma inferiores no lado esquerdo), para obter quatro amostras de croma.
Em seguida, uma quantidade alvo de amostras de luma correspondentes a cada amostra de croma na quantidade predefinida de amostras de croma é obtida com base na quantidade predefinida de amostras de croma.
O processamento de ponderação é realizado separadamente nos valores de luma da quantidade alvo de amostras de luma correspondentes a cada amostra de croma, para obter valores de luma da quantidade predefinida de amostras de luma (um processo de realização de processamento de ponderação nos valores de luma da quantidade alvo de amostras de luma para obter valores de luma das amostras de luma pode ser referido como um processo de redução de resolução). Por exemplo, a quantidade predefinida de amostras de croma são quatro amostras de croma, e cada amostra de croma corresponde a seis amostras de luma (por exemplo, as coordenadas de localização de uma amostra de croma são (i, j), e as coordenadas de localização da quantidade alvo correspondente de amostras de luma são (2i − 1, 2j − 1), (2i, 2j − 1), (2i + 1, 2j − 1), (2i − 1, 2j), (2i, 2j) e (2i + 1, 2j). Uma soma de pesos correspondente respectivamente à quantidade alvo de amostras de luma é igual a 1. Para cada amostra de croma, os valores de luma de seis amostras de luma correspondentes à amostra de croma são respectivamente multiplicados pelos pesos correspondentes para obter seis valores, e seis valores são adicionados para obter os valores de luma das amostras de luma correspondentes à amostra de croma. Dessa forma, os valores de luma da quantidade predefinida de amostras de luma podem ser obtidos.
[00188] A quantidade predefinida de amostras de luma é dividida em dois conjuntos: o primeiro conjunto de amostras de luma e o segundo conjunto de amostras de luma. A quantidade de amostras de luma no primeiro conjunto de amostras de luma é a mesma que a quantidade de amostras de luma no segundo conjunto de amostras de luma, e valores de luma das amostras de luma no primeiro conjunto de amostras de luma são maiores ou iguais aos valores de luma das amostras de luma no segundo conjunto de amostras de luma (por exemplo, se a quantidade predefinida for 4, duas amostras de luma com valores de luma maiores são agrupadas no primeiro conjunto de amostras de luma e duas amostras de luma com valores de luma menores são agrupadas no segundo conjunto de amostras de luma). Em seguida, um valor médio dos valores de luma das amostras de luma no primeiro conjunto de amostras de luma é determinado, o valor médio é determinado como o valor de luma máximo maxY. Um valor médio dos valores de luma das amostras de luma no segundo conjunto de amostras de luma é determinado e o valor médio é determinado como o valor de luma mínimo minY.
[00189] Na maneira 2 correspondente, um processo de determinação do primeiro valor de croma e do segundo valor de croma pode ser o seguinte: um valor médio obtido de valores de amostra de amostras de croma das amostras de luma no primeiro conjunto de amostras de luma é determinado como o primeiro valor de croma e um valor médio obtido de valores de amostra de amostras de croma das amostras de luma no segundo conjunto de amostras de luma é determinado como o segundo valor de croma.
[00190] Deve ser notado ainda que “a determinação é realizada até o bloco de croma atual” pode ser “a codificação é realizada até o bloco de croma atual”, ou pode ser “a decodificação é realizada até o bloco de croma atual”.
[00191] Etapa 1102: se uma primeira diferença entre o valor de luma máximo e o valor de luma mínimo for maior que 0, processar a primeira diferença com base em uma quantidade de bits significativos da primeira diferença e uma primeira profundidade de bit predefinida para obter uma segunda diferença.
[00192] A primeira profundidade de bit predefinida é uma profundidade de bit predefinida para a primeira diferença, e é armazenada no aparelho mencionado acima.
[00193] Durante a implementação, após o valor de luma máximo e o valor de luma mínimo serem obtidos, uma diferença entre o valor de luma máximo e o valor de luma mínimo, ou seja, a primeira diferença, pode ser determinada. Então, se a primeira diferença for maior que 0 é determinado. Se a primeira diferença for maior que 0, a quantidade de bits significativos da primeira diferença é determinada e, em seguida, a primeira diferença é processada (por exemplo, deslocada para a direita) usando a quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida para obter a segunda diferença. A profundidade de bit da segunda diferença é menor que a profundidade de bit da primeira diferença.
[00194] Opcionalmente, a primeira profundidade de bit predefinida é menor que uma profundidade de bit das amostras de luma.
[00195] Durante a implementação, a primeira profundidade de bit predefinida pode ser definida para ser menor do que a profundidade de bit das amostras de luma. Por exemplo, se a profundidade de bit das amostras de luma é 8 bits, a primeira profundidade de bit predefinida pode ser 1 bit, 3 bits, 4 bits, 6 bits ou semelhantes.
[00196] Etapa 1103: determinar, com base no primeiro valor de croma, o segundo valor de croma, e a segunda diferença, um parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
[00197] O parâmetro de modelo de intrapredição inclui um coeficiente de escala e um fator de deslocamento.
[00198] Durante a implementação, após a segunda diferença ser obtida, o coeficiente de escala e o fator de deslocamento que correspondem ao bloco de croma alvo podem ser determinados com base no primeiro valor de croma, no segundo valor de croma e na segunda diferença.
[00199] Etapa 1104: determinar as informações de predição do bloco de croma alvo com base no parâmetro de modelo de intrapredição e informações de reconstrução de luma correspondentes ao bloco de croma alvo.
[00200] Durante a implementação, após o parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo ser determinado, as informações de reconstrução de luma correspondentes ao bloco de croma alvo podem ser obtidas e, em seguida, as informações de predição do bloco de croma alvo são determinadas com base no parâmetro de modelo de intrapredição determinado na etapa 1103 e as informações de reconstrução de luma correspondentes ao bloco de croma alvo.
[00201] Após a etapa 1104, opcionalmente, o método inclui ainda: adicionar um sinal residual às informações de predição determinadas na etapa 1104, para obter um sinal reconstruído do bloco de croma atual.
[00202] Outra modalidade deste pedido descreve um exemplo em que intrapredição usa um CCLM. Este processo existe tanto em um processo de codificação quanto em um processo de decodificação, como mostrado na Figura 12.
[00203] Etapa 1201: Obter um valor de luma máximo e um valor de luma mínimo com base nas amostras de luma correspondentes às amostras vizinhas de um bloco de croma alvo, e obter um primeiro valor de croma correspondente ao valor de luma máximo e um segundo valor de croma correspondente ao valor de luma mínimo.
[00204] Para um processo de processamento da etapa 1201, consulte o processo da etapa 1101.
[00205] Etapa 1202: se uma primeira diferença entre o valor de luma máximo e o valor de luma mínimo for maior que 0, determinar uma terceira diferença entre uma quantidade de bits significativos da primeira diferença e uma primeira profundidade de bit predefinida.
[00206] Durante a implementação, uma diferença entre o valor de luma máximo e o valor de luma mínimo, ou seja, a primeira diferença, pode ser determinada. Então, se a primeira diferença for maior que 0 pode ser determinado. Se a primeira diferença for maior que 0, a quantidade de bits significativos da primeira diferença pode ser determinada e a primeira profundidade de bit predefinida pré-armazenada pode ser obtida. Então, uma diferença entre a quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida, ou seja, a terceira diferença, pode ser determinada. Por exemplo, se a quantidade de bits significativos da primeira diferença for 6 e a primeira profundidade de bit predefinida for 3, pode ser determinado que a terceira diferença é 3.
[00207] Etapa 1203: deslocar a primeira diferença para a direita com base na terceira diferença para obter uma segunda diferença.
[00208] Durante a implementação, após a terceira diferença ser determinada, se a terceira diferença é maior do que 0 pode ser determinado. Se a terceira diferença for maior que 0, a primeira diferença pode ser deslocada para a direita com base na terceira diferença para obter a segunda diferença. Por exemplo, se a terceira diferença for 3, a primeira diferença pode ser deslocada para a direita em dois bits.
[00209] Opcionalmente, o deslocamento à direita pode ser o seguinte: a primeira diferença é deslocada para a direita por bits da terceira diferença para obter a segunda diferença.
[00210] Durante a implementação, a primeira diferença pode ser deslocada para a direita pelos bits da terceira diferença para obter a segunda diferença. Por exemplo, supondo que a primeira profundidade de bit predefinida da primeira diferença seja 3 bits, se a primeira diferença for igual a 10001110, a quantidade de bits significativos é 8, a terceira diferença é 5, e a segunda diferença é igual a
100. Se a primeira diferença for igual a 00001010, a quantidade de bits significativos é 4, a terceira diferença é 1, e a segunda diferença é igual a 101.
 22 N   2N  Floor   Floor  
[00211] Portanto, quando  diff  e / ou  diff  (N é um valor predefinido de um parâmetro de deslocamento normalizado, e diff é a segunda diferença) são subsequentemente determinados por meio de uma tabela de pesquisa, uma profundidade de bit de diff é menor que a da primeira diferença, e uma quantidade de diff valores na tabela é reduzida (um motivo é descrito abaixo). Isso pode  22 N  Floor   melhorar a velocidade de determinação de  diff  e / ou  2N  Floor    diff  por meio de uma tabela de pesquisa.
[00212] Etapa 1204: determinar, com base no primeiro valor de croma, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, a segunda diferença, e o valor de luma mínimo, o parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
[00213] O parâmetro de deslocamento normalizado é usado para realizar o deslocamento, e o valor predefinido do parâmetro de deslocamento normalizado pode ser predefinido e armazenado no aparelho mencionado acima.
[00214] Durante a implementação, cada bloco de croma usando o CCLM corresponde a um parâmetro de modelo de intrapredição, e o parâmetro de modelo de intrapredição inclui um fator de deslocamento e um coeficiente de escala.
[00215] Um coeficiente de escala e um fator de deslocamento correspondente ao bloco de croma alvo podem ser determinados com base no primeiro valor de croma, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, a segunda diferença, o valor de luma mínimo e uma fórmula predefinida.
[00216] Opcionalmente, um valor do parâmetro de deslocamento normalizado pode ser ajustado para determinar o parâmetro de modelo de intrapredição. O processamento correspondente pode ser o seguinte: o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base no primeiro valor de croma, o segundo valor de croma, a segunda diferença e o valor predefinido. O fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base no coeficiente de escala, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, e o valor de luma mínimo.
[00217] O parâmetro de deslocamento normalizado é usado para realizar o deslocamento. Por exemplo, um número é 00001010, um valor alvo do parâmetro de deslocamento normalizado é 1, e o número é deslocado para a direita para obter 00000101. O valor alvo do parâmetro de deslocamento normalizado pode ser usado na determinação subsequente de informações de predição (que também pode ser referido como um sinal de predição).
[00218] Durante a implementação, o valor predefinido do parâmetro de deslocamento normalizado pode ser obtido, e o valor predefinido é um valor de parâmetro predefinido para o parâmetro de deslocamento normalizado. Em seguida, o primeiro valor de croma, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, e a segunda diferença podem ser inseridos em uma fórmula predefinida para obter o coeficiente de escala correspondente ao bloco de croma alvo e, em seguida, o coeficiente de escala, o valor predefinido do parâmetro de deslocamento normalizado, e o valor de luma mínimo são inseridos em outra fórmula predefinida, para obter o fator de deslocamento correspondente ao bloco de croma alvo.
[00219] Além disso, se a segunda diferença for menor ou igual a 0, o valor alvo do parâmetro de deslocamento normalizado é o valor predefinido do parâmetro de deslocamento normalizado. Subsequentemente, as informações de predição podem ser determinadas com base no valor predefinido do parâmetro de deslocamento normalizado.
[00220] Opcionalmente, o valor alvo do parâmetro de deslocamento normalizado pode ser determinado com base no valor predefinido do parâmetro de deslocamento normalizado e o fator de deslocamento é determinado com base no valor alvo. O processamento pode ser o seguinte: x = Floor (Log2(diff)) (indica que um valor obtido após Log2 (diff) é arredondado para baixo é atribuído a x); normDiff = ((diff << 4) >> x) & 15 (indica que ((diff << 4) >> x) & 15 é atribuído a normDiff); x + = (normDiff! = 0)? 1: 0 (indica que se normDiff! = 0 for verdadeiro, x + 1 é atribuído a x; caso contrário, x é atribuído a x); y = Floor (Log2(Abs (maxC - minC))) + 1 (indica que (Floor (Log2 (Abs (maxC - minC))) + 1) é atribuído a y); a = ((maxC - minC) * (divSigTable [normDiff] | 8) + 2y - 1) >> y (indica que (((maxC - minC) * (divSigTable [normDiff] | 8) + 2y - 1) >> y) é atribuído a a, onde a é coeficiente de escala); k = ((3 + x - y) < 1)? 1: (3 + x - y) (indica que se (3 + x - y) < 1) for verdadeiro, 1 é atribuído a k; caso contrário, (3 + x - y) é atribuído a k, onde k é o valor alvo do parâmetro de deslocamento normalizado, e 3 é o valor predefinido do parâmetro de deslocamento normalizado); a = ((3 + x - y) < 1)? Sign (a) * 15: a (indica que se (3 + x - y) < 1) for verdadeiro, Sign (a) * 15 é atribuído a a; caso contrário, a é atribuído a a, onde Sign () é uma função de sinal); b = minC – ((a * minY) >> k)(indica que (minC - ((a * minY) >> k)) é atribuído a b).
[00221] Observe que divSigTable [] é o seguinte: divSigTable [] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}.
[00222] Opcionalmente, de outra maneira, o valor alvo do parâmetro de deslocamento normalizado pode ser determinado com base no valor predefinido do parâmetro de deslocamento normalizado, e o fator de deslocamento pode ser determinado com base no valor alvo. O processamento pode ser o seguinte: o fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base no coeficiente de escala, o segundo valor de croma, o valor alvo do parâmetro de deslocamento normalizado, e o valor de luma mínimo. O valor alvo do parâmetro de deslocamento normalizado é determinado com base no valor predefinido do parâmetro de deslocamento normalizado e a terceira diferença.
[00223] Durante a implementação, o valor predefinido do parâmetro de deslocamento normalizado e a terceira diferença são adicionados para obter o valor alvo do parâmetro de deslocamento normalizado. Em seguida, o coeficiente de escala, o valor alvo do parâmetro de deslocamento normalizado, e o valor de luma mínimo são inseridos em uma fórmula predefinida para obter o fator de deslocamento correspondente ao bloco de croma alvo.
[00224] Opcionalmente, o valor predefinido do parâmetro de deslocamento normalizado é a profundidade de bit da primeira diferença, uma profundidade de bit das amostras de luma, uma soma da profundidade de bit da primeira diferença e um segundo valor predefinido, um produto da profundidade de bit da primeira diferença e um terceiro valor predefinido, ou uma profundidade de bit de um byte.
[00225] O segundo valor predefinido é um número inteiro positivo, por exemplo, 4 bits. O terceiro valor predefinido é um número inteiro positivo, por exemplo, 2 bits.
[00226] Durante a implementação, o valor predefinido do parâmetro de deslocamento normalizado pode ser definido para a profundidade de bit da primeira diferença. O valor predefinido do parâmetro de deslocamento normalizado também pode ser definido para a profundidade de bit das amostras de luma.
[00227] O valor predefinido do parâmetro de deslocamento normalizado também pode ser definido como a soma da profundidade de bit da primeira diferença e o segundo valor predefinido. Por exemplo, a profundidade de bit da primeira diferença é 4 bits, o segundo valor predefinido é 4 bits, e o valor predefinido do parâmetro de deslocamento normalizado pode ser 8 bits.
[00228] O valor predefinido do parâmetro de deslocamento normalizado também pode ser definido como o produto da profundidade de bit da primeira diferença e o terceiro valor predefinido. Por exemplo, a profundidade de bit da primeira diferença é 4 bits, o terceiro valor predefinido é 2, e o valor predefinido do parâmetro de deslocamento normalizado é 8 bits.
[00229] O valor predefinido do parâmetro de deslocamento normalizado pode ser definido para a profundidade de bit de um byte.
[00230] Desta forma, o valor predefinido do parâmetro de deslocamento normalizado pode ser ajustado para qualquer um dos valores anteriores e é inferior a 16 na tecnologia relacionada. Isso pode reduzir a profundidade de bit de um valor na tabela para pesquisa subsequente e, portanto, reduzir a quantidade de dados da tabela.
[00231] Etapa 1205: determinar as informações de predição do bloco de croma alvo com base no parâmetro de modelo de intrapredição e informações de reconstrução de luma correspondentes ao bloco de croma alvo.
[00232] Durante a implementação, após o coeficiente de escala e o fator de deslocamento do bloco de croma alvo serem determinados, uma fórmula pré-armazenada predSamples x y  Clip1C  pDsY  x y a  k   b para determinar as informações de predição pode ser obtida. Nesta fórmula, predSamples  x y é as informações de predição do bloco de croma pDsY  x y alvo, é um valor de um bloco de redução de Clip1C  resolução de um bloco de luma correspondente, é uma operação de corte (permite que um valor de amostra obtido caia dentro de uma faixa válida), e k é o alvo valor do parâmetro de deslocamento normalizado. Nesta fórmula, porque pDsY  x y predSamples  x y , a e b são todos conhecidos, do bloco de croma alvo pode ser determinado. Em outras palavras, as informações de predição (que também pode ser referida como um sinal de predição) do bloco de croma alvo pode ser determinada.
[00233] Desse modo, para cada bloco de croma que usa o CCLM e que está em cada quadro da imagem, as informações de predição são obtidas de acordo com as etapas anteriores e determinadas, para realizar o processamento de codificação ou decodificação.
[00234] Após a etapa 1205, opcionalmente, o método inclui ainda: adicionar um sinal residual às informações de predição determinadas na etapa 1205, para obter um sinal reconstruído do bloco de croma atual.
[00235] Opcionalmente, as informações de reconstrução de luma correspondentes ao bloco de croma alvo incluem informações de redução de resolução de um bloco de reconstrução de luma correspondente ao bloco de croma alvo.
[00236] Opcionalmente, na etapa 1204, há uma pluralidade de maneiras de determinar o coeficiente de escala e o fator de deslocamento. Esta modalidade fornece três maneiras viáveis:  2N  a   max C  min C   Floor    div maneira 1:  diff  , onde a é o coeficiente de escala, diff é a segunda diferença, maxC é o primeiro valor de croma, minC é o segundo valor de croma, e b  min C-   a  min Y   k  N é o valor predefinido. , onde b é o fator de deslocamento, a é o coeficiente de escala, minC é o segundo valor de croma, minY é o valor de luma mínimo, e k é o valor alvo.
[00237] Durante a implementação, uma fórmula de cálculo de coeficiente de escala predefinida  2  N a   max C  min C   Floor    div  diff  pode ser obtida. Em seguida, o primeiro valor de croma maxC, o segundo valor de croma minC, o valor predefinido N do parâmetro de deslocamento normalizado, e a segunda diferença diff são substituídos na fórmula, para obter o coeficiente de escala a correspondente ao bloco de croma alvo. Nessa fórmula,  2  2N  2  N N -1 
N div=   max C  min C   Floor   -Floor    2 +2   N  2N  Floor     diff   diff   ,  diff  2N  22 N  Floor   indica que diff é arredondado para baixo, e  diff  indica  22N    que  diff  é arredondado para baixo. Por exemplo, se N for  216  a   max C  min C   Floor    div 16,  diff  .
[00238] Então, uma fórmula de cálculo de fator de b  min C-   a  min Y   k  deslocamento predefinida pode ser obtida. Isso indica que uma diferença entre minC e um valor obtido depois de a minY ser deslocado para a direita por k bits é calculada, para obter o fator de deslocamento b correspondente ao bloco de croma alvo. O coeficiente de escala a, o segundo croma minC, e o valor alvo k do parâmetro de deslocamento normalizado, e o valor de luma mínimo minY podem ser substituídos nesta fórmula, para determinar o fator de deslocamento b correspondente ao bloco de croma alvo. Na maneira 1, k = N + shiftLuma, onde shiftLuma é a terceira diferença mencionada acima.
[00239] Deve ser notado que, quando o coeficiente de escala é determinado com base em
 2N  a   max C  min C   Floor    div  diff  , porque diff é um denominador, quando esta fórmula é usada, uma condição que diff é maior que 0 precisa ser satisfeita. Quando diff não é maior que 0, o coeficiente de escala é 0, e o fator de deslocamento é o segundo valor de croma.
[00240] Pseudocódigos usados no processo de processamento da etapa 1202 para a maneira 1 podem ser expressos da seguinte forma: A = maxY - minY (indica que a primeira diferença (denotada como A) é a diferença entre o valor de luma máximo e o valor de luma mínimo); shiftLuma = (A = = 0)? 0: Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH (indica que a terceira diferença (denotada como shiftLuma) é 0 quando a primeira diferença sendo igual a 0 é verdadeiro, ou a terceira diferença é Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH quando a primeira diferença sendo igual a 0 é falso, onde Abs () indica que um valor absoluto é usado, e DIFF_BIT_DEPTH é a primeira profundidade de bit predefinida); shiftLuma = Max (0, shiftLuma) (indica que a terceira diferença shiftLuma é um valor maior entre 0 e shiftLuma); diff = A >> shiftLuma (indica que a primeira diferença A é deslocada para a direita por bits da terceira diferença, para obter a segunda diferença); k = N + shiftLuma (indica que o valor alvo k do parâmetro de deslocamento normalizado é uma soma do valor predefinido N do parâmetro de deslocamento normalizado e a terceira diferença).
[00241] Se diff for maior que 0, o seguinte se aplica:
 2N  a   max C  min C   Floor    div  diff  .
[00242] Caso contrário, o seguinte se aplica: a  0; b  min C-   a  min Y   k  ,   22 N   2N  N N -1  div=   max C  min C   Floor   -Floor    2 +2   N onde   diff   diff   , a é o coeficiente de escala, maxC é o primeiro croma, minC é o segundo croma, k é o valor alvo do parâmetro de deslocamento normalizado, minY é o valor de luma mínimo, b é o fator de deslocamento, diff é a segunda diferença, e N é o valor predefinido do parâmetro de deslocamento normalizado.
[00243] Deve ser notado que os textos entre colchetes são usados para explicar uma afirmação anterior.  2N  a   max C  min C   Floor  
[00244] Maneira 2:  diff  , onde a é o coeficiente de escala, diff é a segunda diferença, maxC é o primeiro valor de croma, minC é o segundo valor de croma, b  min C-   a  min Y   k  e N é um valor predefinido. , onde b é o fator de deslocamento, a é o coeficiente de escala, minY é o valor de luma mínimo, e k é o valor alvo.
[00245] Durante a implementação, uma fórmula de cálculo de coeficiente de escala predefinida  2  N a   max C  min C   Floor    diff  pode ser obtida. Em seguida, o primeiro valor de croma maxC, o segundo valor de croma minC, o valor predefinido do parâmetro de deslocamento normalizado, e a segunda diferença diff são substituídos nesta fórmula, para obter o coeficiente de escala. Nesta
N  2N  2 Floor   fórmula,  diff  indica que diff é arredondado para baixo.
[00246] Então, uma fórmula de cálculo de fator de b  min C-   a  min Y   k  deslocamento predefinida pode ser obtida. Isso indica que uma diferença entre minC e um valor obtido depois de a minY ser deslocado para a direita por k bits é calculada, para obter o fator de deslocamento b correspondente ao bloco de croma alvo. O coeficiente de escala a, o segundo croma minC e o valor alvo k do parâmetro de deslocamento normalizado, e o valor de luma mínimo minY podem ser substituídos nesta fórmula, para determinar o fator de deslocamento b correspondente ao bloco de croma alvo. Na maneira 1, k = N + shiftLuma, onde shiftLuma é a terceira diferença mencionada acima.
[00247] Deve ser notado que, quando o coeficiente de  2N  a   max C  min C   Floor   escala é determinado com base em  diff  , porque diff é um denominador, quando esta fórmula é usada, uma condição que diff é maior que 0 precisa ser satisfeita. Quando diff não é maior que 0, o coeficiente de escala é 0, e o fator de deslocamento é o segundo valor de croma.
[00248] Pseudocódigos usados no processo de processamento da etapa 1202 para a maneira 2 podem ser expressos da seguinte forma: A = maxY - minY (indica que a primeira diferença (denotada como A) é a diferença entre o valor de luma máximo e o valor de luma mínimo); ShiftLuma = (A = = 0)? 0: Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH (indica que a terceira diferença (denotada como shiftLuma) é 0 quando a primeira diferença sendo igual a 0 é verdadeiro, ou a terceira diferença é Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH quando a primeira diferença sendo igual a 0 é falso, onde Abs () indica que um valor absoluto é usado, e DIFF_BIT_DEPTH é a primeira profundidade de bit predefinida); shiftLuma = Max (0, shiftLuma) (indica que a terceira diferença shiftLuma é um valor maior entre 0 e shiftLuma); diff =>> shiftLuma (indica que a primeira diferença A é deslocada para a direita por bits da terceira diferença, para obter a segunda diferença); k = N + shiftLuma (indica que o valor alvo k do parâmetro de deslocamento normalizado é uma soma do valor predefinido N do parâmetro de deslocamento normalizado e a terceira diferença).
[00249] Se diff for maior que 0, o seguinte se aplica:  2N  a   max C  min C   Floor    diff  .
[00250] Caso contrário, o seguinte se aplica: a  0; e b  min C-   a  min Y   k  , onde a é o coeficiente de escala, maxC é o primeiro croma, minC é o segundo croma, k é o valor alvo do parâmetro de deslocamento normalizado, minY é o valor de luma mínimo, b é o fator de deslocamento, diff é a segunda diferença e N é o valor predefinido do parâmetro de deslocamento normalizado.
[00251] Deve ser notado que os textos entre parênteses são usados para explicar uma afirmação anterior.  2N  Floor  
[00252] Deve ser notado que, quando  diff  e
 22 N  Floor    diff  geralmente são determinados por meio de uma tabela de pesquisa. Se a profundidade de bit de diff for 10 bits, uma faixa de valores de diff é de 0 a 1023, e há um total de 1024 casos. Se um valor de diff for usado como uma coluna, existe 1024 colunas. Se 216 for usado como uma linha, existe uma linha. Em outras palavras, existe uma tabela 1 x 1024. Nesta tabela, cada valor de 216 correspondente a diff tem um  216  Floor   valor numérico, que é um resultado de cálculo de  diff  .  2N  Floor   Dessa forma, duas tabelas são necessárias para  diff  e 2  2N Floor    diff  . Uma tabela é pesquisada para encontrar um  2 
N Floor   resultado de cálculo de  diff  , e a outra tabela é pesquisada para encontrar um resultado de cálculo de 2  2N Floor    diff  .
[00253] Na maneira 1 e na maneira 2, a primeira diferença A é deslocada para a direita para obter a segunda  2N  Floor   diferença diff e, consequentemente,  A  é alterada para  2N  Floor    diff  . A profundidade de bit de um denominador é menor  2N  Floor   que de  A  na tecnologia relacionada, e isso pode  2N  Floor   melhorar a velocidade de determinação de  A  por meio de uma tabela de pesquisa. A velocidade de uma tabela de pesquisa pode ser melhorada porque a profundidade de bit de A é reduzida e uma quantidade de todos os valores possíveis de A em uma tabela é reduzida. Por exemplo, se a profundidade de bit de A é 10 bits, há um total de 210 valores na tabela. Depois que a profundidade de bit de diff é alterada para 3 bits, há um total de 23 valores na tabela. Nesse caso, um tamanho da tabela é reduzido. Além disso, na maneira 1 e na maneira 2, A não é deslocado diretamente para a direita por bits da primeira profundidade de bit predefinida, mas A é deslocado para a direita por bits de uma diferença entre A e a primeira profundidade de bit predefinida, para reservar os bits significativos de A tanto quanto possível. Isso pode melhorar o desempenho de codificação e decodificação.
[00254] Além disso, o coeficiente de escala e o fator de deslocamento são determinados em ambas a maneira 1 e a maneira 2. No entanto, em comparação com a maneira 1, na maneira 2, um parâmetro div não é usado quando o coeficiente  22 N  Floor   de escala é determinado. Portanto,  diff  não está 2  2N Floor   incluído na maneira 2, e  diff  não precisa ser pesquisado e calculado. Na maneira 2, apenas uma tabela precisa ser armazenada, que é usada para determinar o resultado de  2N  Floor   cálculo de  diff  . Além disso, como o parâmetro div não  22 N   max C  min C   Floor   é usado, não há  diff  . Em outras palavras, não há uma grande operação de multiplicação de números. Portanto, isso pode diminuir a complexidade do cálculo do coeficiente de escala, e determinar rapidamente o coeficiente de escala.
[00255] Além disso, na maneira 1, A pode ser adicionalmente refinado. Para ser específico, addDiff é adicionado a A, e addDiff =  shiftLuma  ?1   shiftLuma-1 : 0 (se shiftLuma sendo diferente de 0 for verdadeiro, addDiff é 1   shiftLuma-1 ; se shiftLuma sendo diferente de 0 for falso, addDiff é 0). Desta forma, os pseudocódigos na maneira 1 podem ser expressos da seguinte forma: A = maxY - minY; shiftLuma = (A = = 0)? 0: Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH; shiftLuma = Max (0, shiftLuma); addDiff =  shiftLuma  ?1   shiftLuma-1 : 0 ; diff = (A +) >> shiftLuma; k = N + shiftLuma.
[00256] Se diff for maior que 0, o seguinte se aplica:  2N  a   max C  min C   Floor    div  diff  .
[00257] Caso contrário, o seguinte se aplica: a  0; b  min C-   a  min Y   k  .
[00258] Além disso, na maneira 2, A pode ser adicionalmente refinado. Para ser específico, addDiff é adicionado a A, e addDiff =  shiftLuma  ?1   shiftLuma-1 : 0 (se shiftLuma não sendo igual a 0 for verdadeiro, addDiff é 1   shiftLuma-1 ; se shiftLuma não sendo igual a 0 for falso, addDiff é 0). Desta forma, os pseudocódigos na maneira 1 podem ser expressos da seguinte forma: A = maxY - minY; shiftLuma = (A = = 0)? 0: Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH; shiftLuma = Max (0, shiftLuma); addDiff =  shiftLuma  ?1   shiftLuma-1 : 0 diff = (A +) >> shiftLuma; e k = N + shiftLuma.
[00259] Se diff for maior que 0, o seguinte se aplica:  2N  a   max C  min C   Floor    diff  .
[00260] Caso contrário, o seguinte se aplica: a  0; e b  min C-   a  min Y   k  .
[00261] Maneira 3: um coeficiente de escala inicial no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base no primeiro valor de croma, o segundo valor de croma, o valor predefinido e a segunda diferença.
[00262] Se uma quarta diferença entre uma quantidade de bits significativos do coeficiente de escala inicial e uma segunda profundidade de bit predefinida for maior que 0, o coeficiente de escala inicial é deslocado para a direita com base na quarta diferença para obter o coeficiente de escala no parâmetro de modelo de intrapredição b  min C-   a  min Y   k  correspondente ao bloco de croma alvo. , onde b é o fator de deslocamento, a é o coeficiente de escala, minC é o segundo valor de croma, minY é o valor de luma mínimo, e k é o valor alvo.
[00263] A segunda profundidade de bit predefinida é uma profundidade de bit predefinida para o coeficiente de escala correspondente, e é armazenada no aparelho mencionado acima. Por exemplo, a segunda profundidade de bit predefinida pode ser inferior a 26 bits, ou pode ser de 16 bits, 10 bits, 8 bits ou semelhantes.
[00264] Durante a implementação, o coeficiente de escala inicial no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo pode ser determinado com base no primeiro valor de croma, o segundo valor de croma, o valor predefinido e a segunda diferença. Para este processo, consulte a maneira 1 ou a maneira 2. Então, a segunda profundidade de bit predefinida correspondente ao coeficiente de escala pode ser obtida, a quarta diferença entre a quantidade de bits significativos do coeficiente de escala inicial e a segunda profundidade de bit predefinida é determinada, e se a quarta diferença é maior que 0 é determinado. Se a quarta diferença for maior que 0, o coeficiente de escala inicial é deslocado para a direita com base na quarta diferença para obter o coeficiente de escala correspondente ao bloco de croma alvo. Por exemplo, se a quarta diferença for 4, o coeficiente de escala inicial pode ser deslocado para a direita por três bits.
[00265] Após o coeficiente de escala ser determinado, um fator de escala alvo pode ser determinado. Uma maneira de determinação é a mesma que processamento na maneira 1 ou na maneira 2. Os detalhes não são descritos aqui novamente.
[00266] Opcionalmente, o deslocamento à direita na maneira 3 pode ser o seguinte: o coeficiente de escala inicial é deslocado para a direita por bits da quarta diferença, para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
[00267] Durante a implementação, depois de ser determinado que a quarta diferença é maior do que 0, o coeficiente de escala inicial pode ser deslocado para a direita pelos bits da quarta diferença, para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
[00268] Opcionalmente, o valor alvo do parâmetro de deslocamento normalizado também pode ser ajustado com base no coeficiente de escala deslocado. O processamento correspondente pode ser o seguinte: se a quarta diferença for maior que 0, uma diferença entre a quarta diferença e uma soma do valor predefinido do parâmetro de deslocamento normalizado e a terceira diferença é determinada como o valor alvo do parâmetro de deslocamento normalizado.
[00269] Durante a implementação, se a terceira diferença for maior que 0 e a quarta diferença entre a quantidade de bits significativos do coeficiente de escala inicial e a segunda profundidade de bit predefinida for maior que 0, a diferença entre a quarta diferença e a soma do valor predefinido do parâmetro de deslocamento normalizado e a terceira diferença pode ser determinada e, em seguida, a diferença pode ser determinada como o valor alvo do parâmetro de deslocamento normalizado.
[00270] Na maneira 3, após o valor alvo do parâmetro de deslocamento normalizado ser obtido, uma maneira de determinar o fator de deslocamento pode ser a seguinte: uma fórmula de cálculo de fator de deslocamento predefinida b  min C-   a  min Y   k pode ser obtida, o que indica que uma diferença entre minC e um valor obtido depois de a minY ser deslocado por k bits para a direita é obtida, para obter o fator de deslocamento b correspondente ao bloco de croma alvo. O coeficiente de escala a, o segundo croma minC, o valor alvo k do parâmetro de deslocamento normalizado, e o valor de luma mínimo minY são substituídos nesta fórmula,
para determinar o fator de deslocamento b correspondente ao bloco de croma alvo. K = N + shiftLuma - shiftA, onde shiftLuma é a terceira diferença mencionada acima, N é o valor predefinido do parâmetro de deslocamento normalizado mencionado acima, e shiftA é a quarta diferença.
[00271] Deve ser notado que, na maneira 3, porque o fator de deslocamento é obtido com base no coeficiente de escala e o valor alvo do parâmetro de deslocamento normalizado, o fator de deslocamento também muda. Em outras palavras, o fator de deslocamento pode ser recalculado de b  min C-  a minY   k  acordo com uma fórmula , para obter um fator de deslocamento b. Nesta fórmula, minC indica o segundo valor de croma, a é o coeficiente de escala, minY é o valor de luma mínimo, e k é o valor alvo (ou seja, a quarta diferença) do parâmetro de deslocamento normalizado.
[00272] Deve ser ainda notado que, este processo é equivalente a um ajuste adicional com base no coeficiente de escala determinado e no fator de deslocamento determinado. Porque o coeficiente de escala inicial é deslocado, depois que o coeficiente de escala é obtido, a profundidade de bit do coeficiente de escala é reduzida. Portanto, isso pode diminuir a complexidade de determinar subsequentemente a multiplicação nas informações de predição.
[00273] Além disso, se a quarta diferença não for maior do que 0, o coeficiente de escala inicial não é deslocado. Em outras palavras, o coeficiente de escala é igual ao coeficiente de escala inicial, e um fator de deslocamento inicial é igual ao fator de deslocamento.
[00274] Se o coeficiente de escala inicial for obtido na maneira 1, pseudocódigos usados no processo da maneira 3 podem ser os seguintes: A = maxY - minY (indica que a primeira diferença (denotada como A) é a diferença entre o valor de luma máximo e o valor de luma mínimo); shiftLuma = (A = = 0)? 0: Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH (indica que a terceira diferença (denotada como shiftLuma) é 0 quando a primeira diferença sendo igual a 0 é verdadeiro, ou a terceira diferença é Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH quando a primeira diferença sendo igual a 0 é falso, onde Abs () indica que um valor absoluto é usado, e DIFF_BIT_DEPTH é a primeira profundidade de bit predefinida); shiftLuma = Max (0, shiftLuma) (indica que a terceira diferença shiftLuma é um valor maior entre 0 e shiftLuma); diff = A>> shiftLuma (indica que a primeira diferença A é deslocada para a direita por bits da terceira diferença, para obter a segunda diferença); k = N + shiftLuma (indica que o valor alvo k do parâmetro de deslocamento normalizado é uma soma do valor predefinido N do parâmetro de deslocamento normalizado e a terceira diferença).
[00275] Se diff for maior que 0, o seguinte se aplica:  2N  a   max C  min C   Floor    div  diff  ,   22 N   2N  N N -1  div=   max C  min C   Floor   -Floor    2 +2    N onde   diff   diff   ; shiftA = (a = = 0)? 0: Floor (Log2 (Abs (a))) - A_BIT_DEPTH (indica que a quarta diferença (denotada como deslocamento A) é 0 quando a sendo igual a 0 é verdadeiro, ou a quarta diferença é Floor (Log2 (Abs (a))) - A_BIT_DEPTH quando a sendo igual a 0 é falso, onde Abs () indica que um valor absoluto é usado, e A_BIT_DEPTH é a segunda profundidade de bit predefinida); shiftA = Max (0, shiftA) (indica que a quarta diferença shiftA é um valor maior entre 0 e shiftA); a = a >> shiftA (indica que a é deslocado para a direita por bits da quarta diferença para obter o coeficiente de escala); k = N + shiftLuma - shiftA (indica que o valor alvo k do parâmetro de deslocamento normalizado é igual a uma diferença entre a quarta diferença e uma soma do valor predefinido N do parâmetro de deslocamento normalizado e a terceira diferença).
[00276] Caso contrário, o seguinte se aplica: a  0; b  min C-   a  min Y   k  .
[00277] Além disso, o coeficiente de escala pode ainda ser refinado. Para ser específico, addA é adicionado ao coeficiente de escala inicial e, em seguida, (a + addA) é deslocado para a direita por shiftA, para determinar um addA=  shiftA ?1   shiftA-1 :0 coeficiente de escala final. (um valor de addA é: se shiftA não sendo igual a 0 for verdadeiro, addA é 1   shiftA-1 ; se shiftA não sendo igual a 0 for falso, addA é definido como 0). Desta forma, pseudocódigos para deslocar o coeficiente de escala inicial obtido da maneira 1 podem ser expressos da seguinte forma: A = maxY - minY; shiftLuma = (A = = 0)? 0: Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH; shiftLuma = Max (0, shiftLuma);
diff = A >> shiftLuma; k = N + shiftLuma.
[00278] Se diff for maior que 0, o seguinte se aplica:  2N  a   max C  min C   Floor    div  diff  ;   22 N   2N  N N -1  div=   max C  min C   Floor   -Floor    2 +2    N   diff   diff   onde ; shiftA = (a = = 0)? 0: Floor (Log2 (Abs (a))) - A_BIT_DEPTH; shiftA = Max (0, shiftA); addA = shiftA? 1 << (shiftA - 1): 0; a = (a + addA) >> shiftA; k = N + shiftLuma - shiftA; b  min C-   a  min Y   k .
[00279] Caso contrário, o seguinte se aplica: a  0; e b  min C-   a  min Y   k  .
[00280] Desse modo, a por ser refinado, as informações de predição obtidas subsequentemente são mais precisas.
[00281] Se o coeficiente de escala inicial for obtido na maneira 2, os pseudocódigos usados no processo na maneira 3 podem ser expressos da seguinte forma: A = maxY - minY; shiftLuma = (A = = 0)? 0: Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH; shiftLuma = Max (0, shiftLuma); diff = A >> shiftLuma; k = N + shiftLuma.
[00282] Se diff for maior que 0, o seguinte se aplica:
 2N  a   max C  min C   Floor    diff  ; shiftA = (a = = 0)? 0: Floor (Log2 (Abs (a))) - A_BIT_DEPTH; shiftA = Max (0, shiftA); a = a >> shiftA; k = N + shiftLuma - shiftA; b  min C-   a  min Y   k .
[00283] Caso contrário, o seguinte se aplica: a  0; e b  min C-   a  min Y   k  .
[00284] Além disso, o coeficiente de escala pode ainda ser refinado. Para ser específico, addA é adicionado ao coeficiente de escala inicial e, em seguida, (a + addA) é deslocado para a direita por shiftA, para determinar o addA=  shiftA ?1   shiftA-1 :0 coeficiente de escala final. (um valor de addA é: se shiftA não sendo igual a 0 for verdadeiro, addA é 1   shiftA-1 ; se shift não sendo igual a 0 for falso, addA é definido como 0). Desta forma, os pseudocódigos para deslocar o coeficiente de escala inicial obtido na maneira 2 são expressos da seguinte forma: A = maxY - minY; shiftLuma = (A = = 0)? 0: Floor (Log2 (Abs (A))) - DIFF_BIT_DEPTH; shiftLuma = Max (0, shiftLuma); diff = A >> shiftLuma; k = N + shiftLuma.
[00285] Se diff for maior que 0, o seguinte se aplica:  2N  a   max C  min C   Floor    diff  shiftA = (a = = 0)? 0: Floor (Log2 (Abs (a))) - A_BIT_DEPTH; shiftA = Max (0, shiftA); addA = shiftA? 1 << (shiftA - 1): 0; a = (a + addA) >> shiftA; k = N + shiftLuma - shiftA. b  min C-   a  min Y   k
[00286] Caso contrário, o seguinte se aplica: a  0; b  min C-   a  min Y   k  .
[00287] Desta forma, porque a é refinado, as informações de predição obtidas subsequentemente são mais precisas.
[00288] Opcionalmente, a segunda profundidade de bit predefinida é uma profundidade de bit de um coeficiente de filtro de intrainterpolação.
[00289] Durante a implementação, a segunda profundidade de bit predefinida é definida para a profundidade de bit do coeficiente de filtro de intrainterpolação, para alinhar com a complexidade da intrapredição. Por exemplo, em um padrão existente, a profundidade de bit do coeficiente de filtro de intrainterpolação é 6 bits, e a segunda profundidade de bit predefinida também pode ser 6 bits.
[00290] Opcionalmente, nesta modalidade deste pedido, quando a primeira diferença não for maior do que 0, um método para determinar o coeficiente de escala e o fator de deslocamento pode ser o seguinte: se a primeira diferença não for maior que 0, é determinado que o coeficiente de escala no parâmetro de modelo de intrapredição é 0, e é determinado que o fator de deslocamento no parâmetro de modelo de intrapredição é o segundo valor de croma.
[00291] Durante a implementação, se a primeira diferença não for maior que 0, pode ser determinado que o coeficiente de escala é 0. Então, o segundo valor de croma, o valor alvo do parâmetro de deslocamento normalizado, e o valor de luma mínimo são substituídos na fórmula b  min C-   a  min Y   k  , para obter b = minC. Em outras palavras, o fator de deslocamento é o segundo valor de croma.
[00292] As modalidades de método anteriores e suas implementações específicas podem ser executadas pelos aparelhos ou sistemas mostrados na Figura 1 à Figura 5.
[00293] Nesta modalidade deste pedido, quando as informações de predição do bloco de croma alvo são determinadas, o valor de luma máximo e o valor de luma mínimo nas amostras de luma correspondentes às amostras vizinhas do bloco de croma alvo podem ser obtidos, o primeiro valor de croma correspondente ao valor de luma máximo e o segundo valor de croma correspondente ao valor de luma mínimo podem ser obtidos e, em seguida, a primeira diferença entre o valor de luma máximo e o valor de luma mínimo pode ser determinada. Se a primeira diferença for maior que 0, a primeira diferença pode ser deslocada para a direita com base na quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida para obter a segunda diferença. Em seguida, um parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base em um primeiro valor de croma, um segundo valor de croma e a segunda diferença e, em seguida,
as informações de predição do bloco de croma alvo são determinadas com base no parâmetro de modelo de intrapredição e informações de reconstrução de luma correspondentes ao bloco de croma alvo. Desta forma, quando o parâmetro de modelo de intrapredição é determinado, a primeira diferença entre o valor de luma máximo e o valor de luma mínimo é deslocada para a direita com base na quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida. Isso pode reduzir uma quantidade de cálculo do parâmetro de modelo de intrapredição, e melhorar a eficiência de predição do bloco de croma.
[00294] O parâmetro de modelo de intrapredição inclui o coeficiente de escala e o fator de deslocamento. Para ser específico, quando o coeficiente de escala é determinado, a primeira diferença entre o valor de luma máximo e o valor de luma mínimo é deslocada para a direita com base na quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida. Portanto, isso pode reduzir as quantidades de cálculo da determinação do coeficiente de escala e do fator de deslocamento, diminuir a complexidade de determinar as informações de predição, e melhorar a eficiência de predição do bloco de croma.
[00295] A Figura 13 é um diagrama de uma estrutura de um aparelho de predição de bloco de croma de acordo com uma modalidade deste pedido. O aparelho pode ser implementado como uma parte do aparelho ou de todo o aparelho usando software, hardware ou uma combinação dos mesmos. O aparelho fornecido nesta modalidade deste pedido pode implementar os procedimentos na Figura 11 e Figura 12 nas modalidades deste pedido. O aparelho inclui um módulo de obtenção 1310 e um módulo de determinação 1320.
[00296] O módulo de obtenção 1310 é configurado para obter um valor de luma máximo e um valor de luma mínimo com base em amostras de luma correspondentes a amostras vizinhas de um bloco de croma alvo, e obter um primeiro valor de croma correspondente ao valor de luma máximo e um segundo valor de croma correspondente ao valor de luma mínimo. O módulo de obtenção 1310 pode ser configurado especificamente para implementar funções de obtenção e incluir etapas implícitas mostradas na Figura 11 e Figura 12.
[00297] O módulo de determinação 1320 é configurado para: se uma primeira diferença entre o valor de luma máximo e o valor de luma mínimo for maior que 0, processar a primeira diferença com base em uma quantidade de bits significativos da primeira diferença e uma primeira profundidade de bit predefinida para obter uma segunda diferença, onde uma profundidade de bit da segunda diferença é menor que uma profundidade de bit da primeira diferença; determinar, com base no primeiro valor de croma, o segundo valor de croma, e a segunda diferença, um parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo; e determinar informações de predição do bloco de croma alvo com base no parâmetro de modelo de intrapredição e informações de reconstrução de luma correspondentes ao bloco de croma alvo. O módulo de determinação 1320 pode ser usado especificamente para implementar funções de determinação e etapas implícitas incluídas mostradas na Figura 11 e Figura
12.
[00298] Opcionalmente, o módulo de obtenção 1310 é configurado para: obter o valor de luma máximo e o valor de luma mínimo nas amostras de luma correspondentes às amostras vizinhas do bloco de croma alvo.
[00299] Opcionalmente, o módulo de obtenção 1310 é configurado para: dividir uma quantidade predefinida de amostras de luma correspondentes a uma quantidade predefinida de amostras vizinhas do bloco de croma alvo em um primeiro conjunto de amostras de luma e um segundo conjunto de amostras de luma, onde uma quantidade de amostras de luma no primeiro conjunto de amostras de luma é igual a uma quantidade de amostras de luma no segundo conjunto de amostras de luma, e valores de luma das amostras de luma no primeiro conjunto de amostras de luma são maiores ou iguais aos valores de luma das amostras de luma no segundo conjunto de amostras de luma; e determinar o valor de luma máximo com base no primeiro conjunto de amostras de luma, e determinar o valor de luma mínimo com base no segundo conjunto de amostras de luma.
[00300] Opcionalmente, o módulo de determinação 1320 é configurado para: deslocar a primeira diferença para a direita para obter a segunda diferença.
[00301] Opcionalmente, o módulo de determinação 1320 é configurado para: determinar uma terceira diferença entre a quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida; e deslocar a primeira diferença para a direita com base na terceira diferença para obter a segunda diferença, onde a terceira diferença é maior que 0.
[00302] Opcionalmente, o módulo de determinação 1320 é configurado para: deslocar a primeira diferença para a direita por bits da terceira diferença para obter a segunda diferença.
[00303] Opcionalmente, o módulo de determinação 1320 é configurado para: determinar, com base no primeiro valor de croma, o segundo valor de croma, um valor predefinido de um parâmetro de deslocamento normalizado, a segunda diferença, e o valor de luma mínimo, o parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
[00304] Opcionalmente, o módulo de determinação 1320 é configurado para: determinar, com base no primeiro valor de croma, o segundo valor de croma, a segunda diferença, e o valor predefinido, um coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo; e determinar, com base no coeficiente de escala, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, e o valor de luma mínimo, um fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
[00305] Opcionalmente, o módulo de determinação 1320 é configurado para: determinar, com base no coeficiente de escala, o segundo valor de croma, um valor alvo do parâmetro de deslocamento normalizado, e o valor de luma mínimo, o fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo, onde o valor alvo do parâmetro de deslocamento normalizado é determinado com base no valor predefinido do parâmetro de deslocamento normalizado e a terceira diferença.
[00306] Opcionalmente, o módulo de determinação 1320 é configurado para:  2N  a   max C  min C   Floor    diff  , onde a é o coeficiente de escala, diff é a segunda diferença, maxC é o primeiro valor de croma, minC é o segundo valor de croma, e N é o valor predefinido.
[00307] O módulo de determinação 1320 é configurado para:  2N  a   max C  min C   Floor    div  diff  ,   22 N   2N  N N -1  div=   max C  min C   Floor   -Floor    2 +2    N onde   diff   diff   , a é o coeficiente de escala, diff é a segunda diferença, maxC é o primeiro valor de croma, minC é o segundo valor de croma, e N é o valor predefinido.
[00308] Opcionalmente, o módulo de determinação 1320 é configurado para: determinar, com base no primeiro valor de croma, o segundo valor de croma, o valor predefinido, e a segunda diferença, um coeficiente de escala inicial no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo; e se uma quarta diferença entre uma quantidade de bits significativos do coeficiente de escala inicial e uma segunda profundidade de bit predefinida for maior que 0, deslocar o coeficiente de escala inicial para a direita com base na quarta diferença para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
[00309] Opcionalmente, o módulo de determinação 1320 é configurado para: deslocar o coeficiente de escala inicial para a direita por bits da quarta diferença para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
[00310] Opcionalmente, o módulo de determinação 1320 é configurado para: se a quarta diferença for maior que 0, determinar uma diferença entre a quarta diferença e uma soma do valor predefinido do parâmetro de deslocamento normalizado e a terceira diferença como o valor alvo do parâmetro de deslocamento normalizado.
[00311] Opcionalmente, a determinação, com base no coeficiente de escala, o segundo valor de croma, o valor alvo, e o valor de luma mínimo, de um fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo inclui: b  min C-   a  min Y   k  , onde b é o fator de deslocamento, a é o coeficiente de escala, minC é o segundo valor de croma, minY é o valor de luma mínimo, e k é o valor alvo.
[00312] Opcionalmente, as informações de reconstrução de luma correspondentes ao bloco de croma alvo incluem informações de redução de resolução de um bloco de reconstrução de luma correspondente ao bloco de croma alvo.
[00313] Opcionalmente, o primeiro valor de croma corresponde ao valor de luma máximo, e o segundo valor de croma corresponde ao valor de luma mínimo.
[00314] Nesta modalidade deste pedido, quando as informações de predição do bloco de croma alvo são determinadas, o aparelho pode obter o valor de luma máximo e o valor de luma mínimo nas amostras de luma correspondentes às amostras vizinhas do bloco de croma alvo, obter o primeiro valor de croma correspondente ao valor de luma máximo e o segundo valor de croma correspondente ao valor de luma mínimo e, em seguida, determinar a primeira diferença entre o valor de luma máximo e o valor de luma mínimo. Se a primeira diferença for maior que 0, a primeira diferença pode ser deslocada para a direita com base na quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida para obter a segunda diferença. Em seguida, um parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo é determinado com base em um primeiro valor de croma, um segundo valor de croma e a segunda diferença e, em seguida, as informações de predição do bloco de croma alvo são determinadas com base no parâmetro de modelo de intrapredição e informações de reconstrução de luma correspondentes ao bloco de croma alvo. Desta forma, quando o parâmetro de modelo de intrapredição é determinado, a primeira diferença entre o valor de luma máximo e o valor de luma mínimo é deslocada para a direita com base na quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida. Isso pode reduzir uma quantidade de cálculo do parâmetro de modelo de intrapredição, e melhorar a eficiência de predição do bloco de croma.
[00315] O parâmetro de modelo de intrapredição inclui o coeficiente de escala e o fator de deslocamento. Para ser específico, quando o coeficiente de escala é determinado, a primeira diferença entre o valor de luma máximo e o valor de luma mínimo é deslocada para a direita com base na quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida. Portanto, isso pode reduzir as quantidades de cálculo da determinação do coeficiente de escala e do fator de deslocamento, diminuir a complexidade de determinar as informações de predição, e melhorar a eficiência de predição do bloco de croma.
[00316] Deve ser notado que quando o aparelho de predição de bloco de croma fornecido na modalidade anterior determina as informações de predição do bloco de croma, a divisão nos módulos funcionais anteriores é usada apenas como um exemplo para a descrição. Durante a aplicação real, as funções anteriores podem ser alocadas a diferentes módulos funcionais, conforme necessário. Em outras palavras, uma estrutura interna do aparelho é dividida em diferentes módulos funcionais para completar todas ou algumas das funções descritas. Além disso, o aparelho de predição de bloco de croma fornecido na modalidade anterior tem um mesmo conceito que a modalidade de método de predição de bloco de croma. Para obter detalhes sobre um processo de implementação específico do aparelho de predição de bloco de croma, consulte a modalidade de método. Os detalhes não são descritos aqui novamente.
[00317] Este pedido fornece ainda um meio de armazenamento legível por computador. O meio de armazenamento legível por computador armazena instruções de computador. Quando as instruções de computador no meio de armazenamento legível por computador são rodadas em um dispositivo de computação, o dispositivo de computação é habilitado para realizar o método de predição de bloco de croma.
[00318] Este pedido fornece ainda um produto de programa de computador incluindo instruções. Quando o produto de programa de computador roda em um dispositivo de computação, o dispositivo de computação é habilitado para realizar o método de predição de bloco de croma.
[00319] Todas ou algumas das modalidades anteriores podem ser implementadas usando software, hardware, firmware ou qualquer combinação dos mesmos. Quando o software é usado para implementação, todas ou algumas das modalidades podem ser implementadas na forma do produto de programa de computador. O produto de programa de computador inclui uma ou mais instruções de computador. Quando as instruções de programa de computador são carregadas e executadas em um servidor ou terminal, todos ou alguns dos procedimentos ou funções de acordo com as modalidades deste pedido são gerados. As instruções de computador podem ser armazenadas em um meio de armazenamento legível por computador ou podem ser transmitidas de um meio de armazenamento legível por computador para outro meio de armazenamento legível por computador. Por exemplo, as instruções de computador podem ser transmitidas de um site, computador, servidor ou centro de dados para outro site, computador, servidor ou centro de dados em uma maneira com fio (por exemplo, um cabo ótico coaxial, uma fibra ótica ou linha de assinante digital) ou sem fio (por exemplo, infravermelho, rádio ou micro-ondas). O meio de armazenamento legível por computador pode ser qualquer meio utilizável acessível por um servidor ou um terminal, ou um dispositivo de armazenamento de dados, como um servidor ou um centro de dados, integrando um ou mais meios utilizáveis. O meio utilizável pode ser um meio magnético (por exemplo, um disquete, um disco rígido ou uma fita magnética), um meio ótico (por exemplo, um disco de vídeo digital (Digital Video Disk, DVD)), um meio semicondutor (por exemplo, uma unidade de estado sólido).
[00320] As descrições anteriores são apenas implementações específicas deste pedido, mas não se destinam a limitar este pedido. Qualquer modificação, substituição equivalente ou melhoria feita sem se afastar do espírito e do princípio deste pedido deve cair dentro do escopo de proteção deste pedido.

Claims (44)

REIVINDICAÇÕES
1. Método de predição de bloco de croma, caracterizado pelo fato de que o método compreende: obter um valor de luma máximo e um valor de luma mínimo com base em amostras de luma correspondentes a amostras vizinhas de um bloco de croma alvo; se uma primeira diferença entre o valor de luma máximo e o valor de luma mínimo for maior que 0, processar a primeira diferença com base em uma quantidade de bits significativos da primeira diferença e uma primeira profundidade de bit bit-depth predefinida para obter uma segunda diferença, em que uma profundidade de bit da segunda diferença é menor que uma profundidade de bit da primeira diferença; determinar, com base em um primeiro valor de croma, um segundo valor de croma, e a segunda diferença, um parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo, em que o primeiro valor de croma e o segundo valor de croma são determinados com base nas amostras vizinhas do bloco de croma alvo; e determinar informações de predição do bloco de croma alvo com base no parâmetro de modelo de intrapredição e informações de reconstrução de luma correspondentes ao bloco de croma alvo.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a obtenção de um valor de luma máximo e um valor de luma mínimo com base em amostras de luma correspondentes a amostras vizinhas de um bloco de croma alvo compreende: obter o valor de luma máximo e o valor de luma mínimo nas amostras de luma correspondentes às amostras vizinhas do bloco de croma alvo.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a obtenção de um valor de luma máximo e um valor de luma mínimo com base em amostras de luma correspondentes a amostras vizinhas de um bloco de croma alvo compreende: dividir uma quantidade predefinida de amostras de luma correspondentes a uma quantidade predefinida de amostras vizinhas do bloco de croma alvo em um primeiro conjunto de amostras de luma e um segundo conjunto de amostras de luma, em que uma quantidade de amostras de luma no primeiro conjunto de amostras de luma é igual a uma quantidade de amostras de luma no segundo conjunto de amostras de luma, e valores de luma das amostras de luma no primeiro conjunto de amostras de luma são maiores ou iguais aos valores de luma das amostras de luma no segundo conjunto de amostras de luma; e determinar o valor de luma máximo com base no primeiro conjunto de amostras de luma, e determinar o valor de luma mínimo com base no segundo conjunto de amostras de luma.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que o processamento da primeira diferença para obter uma segunda diferença compreende: deslocar a primeira diferença para a direita para obter a segunda diferença.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que o processamento da primeira diferença com base em uma quantidade de bits significativos da primeira diferença e uma primeira profundidade de bit predefinida para obter uma segunda diferença compreende: determinar uma terceira diferença entre a quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida; e deslocar a primeira diferença para a direita com base na terceira diferença para obter a segunda diferença, em que a terceira diferença é maior que 0.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que o deslocamento da primeira diferença para a direita com base na terceira diferença para obter a segunda diferença compreende: deslocar a primeira diferença para a direita por bits da terceira diferença para obter a segunda diferença.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que a determinação, com base em um primeiro valor de croma, um segundo valor de croma, e a segunda diferença, de um parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo compreende: determinar, com base no primeiro valor de croma, o segundo valor de croma, um valor predefinido de um parâmetro de deslocamento normalizado, a segunda diferença, e o valor de luma mínimo, o parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que a determinação, com base no primeiro valor de croma, o segundo valor de croma, um valor predefinido de um parâmetro de deslocamento normalizado, a segunda diferença, e o valor de luma mínimo, do parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo compreende: determinar, com base no primeiro valor de croma, o segundo valor de croma, a segunda diferença, e o valor predefinido do parâmetro de deslocamento normalizado, um coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo; e determinar, com base no coeficiente de escala, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, e o valor de luma mínimo, um fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que a determinação, com base no coeficiente de escala, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, e o valor de luma mínimo, de um fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo compreende: determinar, com base no coeficiente de escala, o segundo valor de croma, um valor alvo do parâmetro de deslocamento normalizado, e o valor de luma mínimo, o fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo, em que o valor alvo do parâmetro de deslocamento normalizado é determinado com base no valor predefinido do parâmetro de deslocamento normalizado.
10. Método, de acordo com a reivindicação 8 ou 9, caracterizado pelo fato de que a determinação, com base no primeiro valor de croma, o segundo valor de croma, a segunda diferença, e o valor predefinido, de um coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo compreende:  2N  a   max C  min C   Floor    diff  , em que a é o coeficiente de escala, diff é a segunda diferença, maxC é o primeiro valor de croma, minC é o segundo valor de croma, e N é o valor predefinido.
11. Método, de acordo com a reivindicação 8 ou 9, caracterizado pelo fato de que a determinação, com base no primeiro valor de croma, o segundo valor de croma, a segunda diferença, e o valor predefinido, de um coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo compreende:  2N  a   max C  min C   Floor    div  diff  ,   22 N   2N  N N -1  div=   max C  min C   Floor   -Floor    2 +2   N em que   diff   diff   , a é o coeficiente de escala, diff é a segunda diferença, maxC é o primeiro valor de croma, minC é o segundo valor de croma, e N é o valor predefinido.
12. Método, de acordo com a reivindicação 10 ou 11,  2N  Floor    diff  caracterizado pelo fato de que é determinado por meio de uma tabela de pesquisa.
13. Método, de acordo com a reivindicação 8 ou 9, caracterizado pelo fato de que a determinação, com base no primeiro valor de croma, o segundo valor de croma, a segunda diferença, e o valor predefinido, de um coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo compreende: determinar, com base no primeiro valor de croma, o segundo valor de croma, o valor predefinido, e a segunda diferença, um coeficiente de escala inicial no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo; e se uma quarta diferença entre uma quantidade de bits significativos do coeficiente de escala inicial e uma segunda profundidade de bit predefinida for maior que 0, deslocar o coeficiente de escala inicial para a direita com base na quarta diferença para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
14. Método, de acordo com a reivindicação 13, caracterizado pelo fato de que o deslocamento do coeficiente de escala inicial para a direita com base na quarta diferença para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo compreende: deslocar o coeficiente de escala inicial para a direita por bits da quarta diferença para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
15. Método, de acordo com a reivindicação 13 ou 14, caracterizado pelo fato de que o método compreende ainda: se a quarta diferença for maior que 0, determinar uma diferença entre a quarta diferença e uma soma do valor predefinido do parâmetro de deslocamento normalizado e a terceira diferença como o valor alvo do parâmetro de deslocamento normalizado.
16. Método, de acordo com qualquer uma das reivindicações 13 a 15, caracterizado pelo fato de que a segunda profundidade de bit predefinida é uma profundidade de bit de um coeficiente de filtro de intrainterpolação.
17. Método, de acordo com qualquer uma das reivindicações 9 a 16, caracterizado pelo fato de que a determinação, com base no coeficiente de escala, o segundo valor de croma, um valor alvo, e o valor de luma mínimo, do fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo compreende: b  min C-   a  min Y   k  , em que b é o fator de deslocamento, a é o coeficiente de escala, minC é o segundo valor de croma, minY é o valor de luma mínimo, e k é o valor alvo.
18. Método, de acordo com qualquer uma das reivindicações 1 a 17, caracterizado pelo fato de que o método compreende ainda: se a primeira diferença não for maior que 0, determinar que o coeficiente de escala no parâmetro de modelo de intrapredição é 0, e determinar que o fator de deslocamento no parâmetro de modelo de intrapredição é o segundo valor de croma.
19. Método, de acordo com qualquer uma das reivindicações 7 a 18, caracterizado pelo fato de que o valor predefinido do parâmetro de deslocamento normalizado é a profundidade de bit da primeira diferença, uma profundidade de bit de amostras de luma, uma soma da profundidade de bit da primeira diferença e um segundo valor predefinido, um produto da profundidade de bit da primeira diferença e um terceiro valor predefinido, ou uma profundidade de bit de um byte.
20. Método, de acordo com qualquer uma das reivindicações 1 a 19, caracterizado pelo fato de que a primeira profundidade de bit predefinida é menor que a profundidade de bit de amostras de luma.
21. Método, de acordo com qualquer uma das reivindicações 1 a 20, caracterizado pelo fato de que as informações de reconstrução de luma correspondentes ao bloco de croma alvo compreendem informações de redução de resolução de um bloco de reconstrução de luma correspondente ao bloco de croma alvo.
22. Método, de acordo com qualquer uma das reivindicações 1 a 21, caracterizado pelo fato de que o primeiro valor de croma corresponde ao valor de luma máximo, e o segundo valor de croma corresponde ao valor de luma mínimo.
23. Aparelho de predição de bloco de croma, caracterizado pelo fato de que o aparelho compreende: um módulo de obtenção, configurado para obter um valor de luma máximo e um valor de luma mínimo com base em amostras de luma correspondentes a amostras vizinhas de um bloco de croma alvo; e um módulo de determinação, configurado para: se uma primeira diferença entre o valor de luma máximo e o valor de luma mínimo for maior que 0, processar a primeira diferença com base em uma quantidade de bits significativos da primeira diferença e uma primeira profundidade de bit bit-depth predefinida para obter uma segunda diferença, em que uma profundidade de bit da segunda diferença é menor que uma profundidade de bit da primeira diferença; determinar, com base em um primeiro valor de croma, um segundo valor de croma, e a segunda diferença, um parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo, em que o primeiro valor de croma e o segundo valor de croma são determinados com base nas amostras vizinhas do bloco de croma alvo; e determinar informações de predição do bloco de croma alvo com base no parâmetro de modelo de intrapredição e informações de reconstrução de luma correspondentes ao bloco de croma alvo.
24. Aparelho, de acordo com a reivindicação 23, caracterizado pelo fato de que o módulo de obtenção é configurado para: obter o valor de luma máximo e o valor de luma mínimo nas amostras de luma correspondentes às amostras vizinhas do bloco de croma alvo.
25. Aparelho, de acordo com a reivindicação 23, caracterizado pelo fato de que o módulo de obtenção é configurado para: dividir uma quantidade predefinida de amostras de luma correspondentes a uma quantidade predefinida de amostras vizinhas do bloco de croma alvo em um primeiro conjunto de amostras de luma e um segundo conjunto de amostras de luma, em que uma quantidade de amostras de luma no primeiro conjunto de amostras de luma é igual a uma quantidade de amostras de luma no segundo conjunto de amostras de luma, e valores de luma das amostras de luma no primeiro conjunto de amostras de luma são maiores ou iguais aos valores de luma das amostras de luma no segundo conjunto de amostras de luma; e determinar o valor de luma máximo com base no primeiro conjunto de amostras de luma, e determinar o valor de luma mínimo com base no segundo conjunto de amostras de luma.
26. Aparelho, de acordo com qualquer uma das reivindicações 23 a 25, caracterizado pelo fato de que o módulo de determinação é configurado para: deslocar a primeira diferença para a direita para obter a segunda diferença.
27. Aparelho, de acordo com a reivindicação 26, caracterizado pelo fato de que o módulo de determinação é configurado para: determinar uma terceira diferença entre a quantidade de bits significativos da primeira diferença e a primeira profundidade de bit predefinida; e deslocar a primeira diferença para a direita com base na terceira diferença para obter a segunda diferença, em que a terceira diferença é maior que 0.
28. Aparelho, de acordo com a reivindicação 27, caracterizado pelo fato de que o módulo de determinação é configurado para: deslocar a primeira diferença para a direita por bits da terceira diferença para obter a segunda diferença.
29. Aparelho, de acordo com qualquer uma das reivindicações 23 a 28, caracterizado pelo fato de que o módulo de determinação é configurado para: determinar, com base no primeiro valor de croma, o segundo valor de croma, um valor predefinido de um parâmetro de deslocamento normalizado, a segunda diferença, e o valor de luma mínimo, o parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
30. Aparelho, de acordo com a reivindicação 29, caracterizado pelo fato de que o módulo de determinação é configurado para: determinar, com base no primeiro valor de croma, o segundo valor de croma, a segunda diferença, e o valor predefinido do parâmetro de deslocamento normalizado, um coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo; e determinar, com base no coeficiente de escala, o segundo valor de croma, o valor predefinido do parâmetro de deslocamento normalizado, e o valor de luma mínimo, um fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
31. Aparelho, de acordo com a reivindicação 30, caracterizado pelo fato de que o módulo de determinação é configurado para: determinar, com base no coeficiente de escala, o segundo valor de croma, um valor alvo do parâmetro de deslocamento normalizado, e o valor de luma mínimo, o fator de deslocamento no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo, em que o valor alvo do parâmetro de deslocamento normalizado é determinado com base no valor predefinido do parâmetro de deslocamento normalizado.
32. Aparelho, de acordo com a reivindicação 30 ou 31, caracterizado pelo fato de que o módulo de determinação é configurado para:  2N  a   max C  min C   Floor    diff  , em que a é o coeficiente de escala, diff é a segunda diferença, maxC é o primeiro valor de croma, minC é o segundo valor de croma, e N é o valor predefinido.
33. Aparelho, de acordo com a reivindicação 30 ou 31, caracterizado pelo fato de que o módulo de determinação é configurado para:
 2N  a   max C  min C   Floor    div  diff  ,   22 N   2N  N N -1  div=   max C  min C   Floor   -Floor    2 +2   N em que   diff   diff   , a é o coeficiente de escala, diff é a segunda diferença, maxC é o primeiro valor de croma, minC é o segundo valor de croma, e N é o valor predefinido.
34. Aparelho, de acordo com a reivindicação 32 ou 33, caracterizado pelo fato de que o módulo de determinação é ainda configurado para:  2N  Floor   determinar  diff  por meio de uma tabela de pesquisa.
35. Aparelho, de acordo com a reivindicação 30 ou 31, caracterizado pelo fato de que o módulo de determinação é configurado para: determinar, com base no primeiro valor de croma, o segundo valor de croma, o valor predefinido, e a segunda diferença, um coeficiente de escala inicial no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo; e se uma quarta diferença entre uma quantidade de bits significativos do coeficiente de escala inicial e uma segunda profundidade de bit predefinida for maior que 0, deslocar o coeficiente de escala inicial para a direita com base na quarta diferença para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
36. Aparelho, de acordo com a reivindicação 35, caracterizado pelo fato de que o módulo de determinação é configurado para:
deslocar o coeficiente de escala inicial para a direita por bits da quarta diferença para obter o coeficiente de escala no parâmetro de modelo de intrapredição correspondente ao bloco de croma alvo.
37. Aparelho, de acordo com a reivindicação 35 ou 36, caracterizado pelo fato de que o módulo de determinação é ainda configurado para: se a quarta diferença for maior que 0, determinar uma diferença entre a quarta diferença e uma soma do valor predefinido do parâmetro de deslocamento normalizado e a terceira diferença como o valor alvo do parâmetro de deslocamento normalizado.
38. Aparelho, de acordo com qualquer uma das reivindicações 30 a 37, caracterizado pelo fato de que o módulo de determinação é configurado para: b  min C-   a  min Y   k  , em que b é o fator de deslocamento, a é o coeficiente de escala, minC é o segundo valor de croma, minY é o valor de luma mínimo, e k é o valor alvo.
39. Aparelho, de acordo com qualquer uma das reivindicações 23 a 38, caracterizado pelo fato de que as informações de reconstrução de luma correspondentes ao bloco de croma alvo compreendem informações de redução de resolução de um bloco de reconstrução de luma correspondente ao bloco de croma alvo.
40. Aparelho, de acordo com qualquer uma das reivindicações 23 a 39, caracterizado pelo fato de que o primeiro valor de croma corresponde ao valor de luma máximo, e o segundo valor de croma corresponde ao valor de luma mínimo.
41. Aparelho de predição de bloco de croma, caracterizado pelo fato de que o aparelho de predição compreende uma memória e um processador, em que a memória é configurada para armazenar instruções de computador executadas pelo processador; e o processador é configurado para realizar o método de predição de bloco de croma conforme definido em qualquer uma das reivindicações 1 a 22.
42. Aparelho de predição, de acordo com a reivindicação 41, caracterizado pelo fato de que o aparelho é um aparelho de codificação ou um aparelho de decodificação.
43. Meio de armazenamento legível por computador, caracterizado pelo fato de que o meio de armazenamento legível por computador armazena instruções de computador, e quando as instruções de computador no meio de armazenamento legível por computador são rodadas em um dispositivo de computação, o dispositivo de computação é habilitado para realizar o método de predição de bloco de croma conforme definido em qualquer uma das reivindicações 1 a 22.
44. Produto de programa de computador compreendendo instruções, caracterizado pelo fato de que quando o produto de programa de computador roda em um dispositivo de computação, o dispositivo de computação é habilitado para realizar o método de predição de bloco de croma conforme definido em qualquer uma das reivindicações 1 a 22.
BR112021011427-0A 2018-12-13 2019-11-26 Método e aparelho de predição de bloco de croma BR112021011427A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811527100.4A CN111327903B (zh) 2018-12-13 2018-12-13 色度块的预测方法和装置
CN201811527100.4 2018-12-13
PCT/CN2019/120984 WO2020119449A1 (zh) 2018-12-13 2019-11-26 色度块的预测方法和装置

Publications (1)

Publication Number Publication Date
BR112021011427A2 true BR112021011427A2 (pt) 2021-08-31

Family

ID=71075726

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021011427-0A BR112021011427A2 (pt) 2018-12-13 2019-11-26 Método e aparelho de predição de bloco de croma

Country Status (5)

Country Link
US (2) US11595669B2 (pt)
EP (1) EP3883245A4 (pt)
CN (5) CN117082250A (pt)
BR (1) BR112021011427A2 (pt)
WO (1) WO2020119449A1 (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113170169B (zh) * 2018-12-07 2024-01-30 夏普株式会社 预测图像生成装置、运动图像解码装置、运动图像编码装置以及预测图像生成方法
SG11202106417YA (en) * 2018-12-20 2021-07-29 Sharp Kk Prediction image generation apparatus, video decoding apparatus, video coding apparatus, and prediction image generation method
CN114615494A (zh) * 2020-12-04 2022-06-10 咪咕文化科技有限公司 一种图像处理方法、装置及设备
US20230059035A1 (en) * 2021-08-23 2023-02-23 Netflix, Inc. Efficient encoding of film grain noise
US20230281848A1 (en) * 2022-03-03 2023-09-07 Qualcomm Incorporated Bandwidth efficient image processing
WO2023194604A1 (en) * 2022-04-08 2023-10-12 Interdigital Ce Patent Holdings, Sas Template based cclm/mmlm slope adjustment
US20230336748A1 (en) * 2022-04-19 2023-10-19 Tencent America LLC Chroma from luma prediction using mapping and different types
WO2024026098A1 (en) * 2022-07-28 2024-02-01 Beijing Dajia Internet Information Technology Co., Ltd Method and apparatus for cross-component prediction for video coding
WO2024078416A1 (zh) * 2022-10-12 2024-04-18 维沃移动通信有限公司 色度分量预测方法、装置及设备
CN116593408B (zh) * 2023-07-19 2023-10-17 四川亿欣新材料有限公司 一种重质碳酸钙粉体色度检测方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100763181B1 (ko) * 2005-04-19 2007-10-05 삼성전자주식회사 기초계층과 향상계층의 데이터를 바탕으로 예측 정보를코딩하여 코딩율을 향상시키는 방법 및 장치
SG189184A1 (en) * 2010-10-01 2013-05-31 Samsung Electronics Co Ltd Image intra prediction method and apparatus
US9693070B2 (en) * 2011-06-24 2017-06-27 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
US9807403B2 (en) * 2011-10-21 2017-10-31 Qualcomm Incorporated Adaptive loop filtering for chroma components
CN103918269B (zh) * 2012-01-04 2017-08-01 联发科技(新加坡)私人有限公司 色度帧内预测方法及装置
WO2013155662A1 (en) * 2012-04-16 2013-10-24 Mediatek Singapore Pte. Ltd. Methods and apparatuses of simplification for intra chroma lm mode
CN104471940B (zh) * 2012-04-16 2017-12-15 联发科技(新加坡)私人有限公司 色度帧内预测方法及装置
GB2505640B (en) * 2012-08-22 2014-12-17 Canon Kk Method and apparatus for compressing or decompressing video sequence of images
US10397607B2 (en) * 2013-11-01 2019-08-27 Qualcomm Incorporated Color residual prediction for video coding
US10142642B2 (en) * 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
US20160105685A1 (en) * 2014-10-08 2016-04-14 Qualcomm Incorporated Boundary filtering and cross-component prediction in video coding
US9838662B2 (en) * 2014-10-10 2017-12-05 Qualcomm Incorporated Harmonization of cross-component prediction and adaptive color transform in video coding
US9998742B2 (en) * 2015-01-27 2018-06-12 Qualcomm Incorporated Adaptive cross component residual prediction
US10455249B2 (en) * 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
CN105306944B (zh) * 2015-11-30 2018-07-06 哈尔滨工业大学 混合视频编码标准中色度分量预测方法
US10477240B2 (en) * 2016-12-19 2019-11-12 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding
US10873746B2 (en) * 2016-12-21 2020-12-22 Sharp Kabushiki Kaisha Intra prediction image generation device using cross-component liner model, image decoding apparatus, and image coding apparatus using same
US11025903B2 (en) * 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
GB2567249A (en) * 2017-10-09 2019-04-10 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
KR101956756B1 (ko) * 2018-06-12 2019-03-11 광운대학교 산학협력단 성분 간 참조 기반의 비디오 신호 처리 방법 및 장치
EP3900347A2 (en) * 2018-12-21 2021-10-27 Vid Scale, Inc. Methods, architectures, apparatuses and systems directed to improved linear model estimation for template based video coding
CN115665407B (zh) 2018-12-31 2023-08-04 华为技术有限公司 用于帧内预测的分量间线性建模方法和装置

Also Published As

Publication number Publication date
CN112235577B (zh) 2021-08-20
WO2020119449A1 (zh) 2020-06-18
CN111327903A (zh) 2020-06-23
CN117319670A (zh) 2023-12-29
US11595669B2 (en) 2023-02-28
CN111327903B (zh) 2023-05-16
US20230156202A1 (en) 2023-05-18
CN116781915A (zh) 2023-09-19
EP3883245A1 (en) 2021-09-22
CN112235577A (zh) 2021-01-15
US20210314581A1 (en) 2021-10-07
CN117082250A (zh) 2023-11-17
EP3883245A4 (en) 2022-06-08

Similar Documents

Publication Publication Date Title
BR112021011427A2 (pt) Método e aparelho de predição de bloco de croma
BR112021004984A2 (pt) aparelho e método para quantização inversa
JP7492051B2 (ja) クロマブロック予測方法及び装置
BR112021007865A2 (pt) método e aparelho de predição de imagem
BR122023023994A2 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
CN110881126B (zh) 色度块预测方法以及设备
JP7286757B2 (ja) 分割制約要素間の関係
BR112021004124A2 (pt) método de decodificação de vídeo e decodificador de vídeo
BR112021001813A2 (pt) método de processamento de vídeo, aparelho de processamento de vídeo, codificador, decodificador, mídia e programa de computador
BR112021013444A2 (pt) Método, aparelho e sistema de predição de imagem, dispositivo, e mídia de armazernamento
BR112021009911A2 (pt) codificador, decodificador e métodos correspondentes usando armazenamento de mv compacto
US20230336725A1 (en) Video encoder, video decoder, and corresponding method
BR122022009445A2 (pt) Codificador, decodificador e métodos correspondentes para simplificar sinalização de cabeçalho de imagem
CN110858903A (zh) 色度块预测方法及装置
US11323708B2 (en) Picture partitioning method and apparatus
BR112021009099A2 (pt) codificador de vídeo, decodificador de vídeo e métodos de codificação ou decodificação de uma imagem
BR112021003946A2 (pt) codificador de vídeo, decodificador de vídeo e métodos correspondentes
WO2020055291A1 (en) Method and apparatus for wide-angle intra-prediction