BR112021013163A2 - 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
BR112021013163A2
BR112021013163A2 BR112021013163-9A BR112021013163A BR112021013163A2 BR 112021013163 A2 BR112021013163 A2 BR 112021013163A2 BR 112021013163 A BR112021013163 A BR 112021013163A BR 112021013163 A2 BR112021013163 A2 BR 112021013163A2
Authority
BR
Brazil
Prior art keywords
luma
chroma
values
samples
block
Prior art date
Application number
BR112021013163-9A
Other languages
English (en)
Inventor
Xiang Ma
Fan MU
Yin Zhao
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 BR112021013163A2 publication Critical patent/BR112021013163A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (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 codificação e decodificação de vídeo. o método inclui: obter valores de croma de amostras de croma em localizações predefinidas de amostras vizinhas de um bloco de croma; obter, com base em amostras vizinhas de um bloco de luma correspondente ao bloco de croma, valores de luma de amostras de luma correspondentes às amostras de croma; obter, a partir dos valores de luma obtidos, um primeiro conjunto de luma e um segundo conjunto de luma; agrupar os valores de croma em um primeiro conjunto de croma e um segundo conjunto de croma; determinar um coeficiente de escalamento em um modelo linear com base em um valor médio de valores de luma no primeiro conjunto de luma, um valor médio de valores de luma no segundo conjunto de luma, um valor médio de valores de croma no primeiro conjunto de croma, e um valor médio dos valores de croma no segundo conjunto de croma; determinar, com base no coeficiente de escalamento, um fator de deslocamento em um modelo linear correspondente ao bloco de croma; e determinar informações de predição do bloco de croma com base no coeficiente de escalamento, o fator de deslocamento, e informações de reconstrução de luma correspondentes ao bloco de croma. desta forma, eficiência de predição de bloco de croma pode ser melhorada.

Description

MÉTODO E APARELHO DE PREDIÇÃO DE BLOCO DE CROMA
[001] Este pedido reivindica prioridade ao Pedido de Patente Chinês No. 201910005667.3, depositado em 3 de janeiro de 2019 e intitulado "CHROMA BLOCK PREDICTION METHOD AND APPARATUS", que é incorporado neste documento por referência em sua totalidade.
CAMPO TÉCNICO
[002] Este pedido se refere ao campo das tecnologias de codificação e decodificação de vídeo e, em particular, a um método e aparelho de predição de bloco de croma.
ANTECEDENTES
[003] Com o desenvolvimento das tecnologias da Internet, há uma quantidade crescente de programas de aplicação de vídeo, e os programas de aplicação de vídeo apresentam uma quantidade cada vez maior de requisitos em vídeos de alta definição. No entanto, como os volumes de dados dos vídeos de alta definição são relativamente grandes, se os vídeos de alta definição precisam ser transmitidos em larguras de banda de rede limitadas, os vídeos de alta definição precisam ser codificados. Geralmente, processamento de codificação inclui principalmente intrapredição, interpredição, transformada, quantização, codificação de entropia, filtragem intraloop e semelhantes.
[004] Em uma tecnologia relacionada, quando intrapredição precisa ser realizada, informação de predição de qualquer bloco de croma pode ser determinada usando um modo linear de componente cruzado (Cross Component Linear Mode, CCLM) (que também pode ser referido como um modo de predição de componente cruzado (Cross-Component Prediction, CCP) ou modo de intrapredição de componente cruzado (Cross-
Component Intra Prediction, CCIP) ou modo linear (linear mode, LM) para abreviar). Este é um método de intrapredição de croma realizado usando uma correlação entre luminância e crominância. Neste método, a informação de predição de um bloco de croma atual é derivada usando um componente de luma reconstruído de acordo com um modelo linear e pode ser representada usando a seguinte fórmula: predC  i, j     reci L  i, j    . Aqui,  e  são parâmetros de modelo de intrapredição, onde  é um coeficiente de escalamento, e  é um fator de deslocamento, predC  i, j  é um preditor de uma amostra de croma em uma localização (i, j), e reci L  i, j  é um valor de amostra reconstruído de luma na localização (i, j) após um bloco reconstruído de luma correspondente ao bloco de croma atual ter amostragem reduzida para uma resolução de componente de croma. O coeficiente de escalamento e o fator de deslocamento não precisam ser codificados para transmissão, mas são derivados usando amostras de borda de um bloco reconstruído vizinho do bloco de croma atual e amostras de luma correspondentes às amostras de borda. Um método pode ser:  N   L  n   C  n    L  n   C  n    =  N   L  n   L  n    L  n   L  n       C  n     L  n  N . Aqui, N é uma quantidade de Ln amostras de borda do bloco reconstruído vizinho, é uma C n enésima amostra de luma, e é uma enésima amostra de croma.
[005] Desta forma, um coeficiente de escalamento e um fator de deslocamento precisam ser determinados para cada bloco de croma para o qual o CCLM é usado. No entanto, o processo de determinação anterior envolve uma grande quantidade de multiplicações e é relativamente complexo. Consequentemente, a eficiência de predição do bloco de croma é relativamente baixa.
SUMÁRIO
[006] Para resolver um problema em uma 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: de acordo com um primeiro aspecto, um método de predição de bloco de croma é fornecido. O método inclui: obter valores de croma de amostras de croma em localizações predefinidas de amostras vizinhas de um bloco de croma; obter, com base em amostras vizinhas de um bloco de luma correspondente ao bloco de croma, valores de luma de amostras de luma correspondentes às amostras de croma nas localizações predefinidas; classificar os valores de luma obtidos em um primeiro conjunto de luma e um segundo conjunto de luma; agrupar valores de croma de amostras de croma correspondentes a amostras de luma associadas a valores de luma no primeiro conjunto de luma em um primeiro conjunto de croma, e agrupar valores de croma de amostras de croma correspondentes a amostras de luma associadas a valores de luma no segundo conjunto de luma em um segundo conjunto de croma; determinar, com base em um valor médio dos valores de luma no primeiro conjunto de luma, um valor médio dos valores de luma no segundo conjunto de luma, um valor médio dos valores de croma no primeiro conjunto de croma, e um valor médio dos valores de croma no segundo conjunto de croma, um coeficiente de escalamento em um modelo linear correspondente ao bloco de croma; determinar, com base no coeficiente de escalamento, um fator de deslocamento no modelo linear correspondente ao bloco de croma; e determinar informação de predição do bloco de croma com base no coeficiente de escalamento, o fator de deslocamento, e informações de reconstrução de luma correspondentes ao bloco de croma.
[007] Na solução mostrada nesta modalidade deste pedido, quando a intrapredição precisa ser realizada em um bloco de croma atual (que pode ser brevemente referido como o bloco de croma subsequentemente), os valores de croma das amostras de croma nas localizações predefinidas podem ser obtidos a partir das amostras vizinhas do bloco de croma. Em seguida, o bloco de luma correspondente ao bloco de croma pode ser determinado, e os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas podem ser obtidos com base nas amostras vizinhas do bloco de luma. Os valores de luma obtidos são classificados no primeiro conjunto de luma e no segundo conjunto de luma. Os valores de croma são classificados automaticamente no primeiro conjunto de croma e no segundo conjunto de croma com base nos valores de luma. Então, o coeficiente de escalamento no modelo linear correspondente ao bloco de croma é determinado com base no valor médio dos valores de luma no primeiro conjunto de luma, o valor médio dos valores de luma no segundo conjunto de luma, o valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de croma no segundo conjunto de croma. Em seguida, o fator de deslocamento no modelo linear correspondente ao bloco de croma é determinado com base no coeficiente de escalamento. Finalmente, a informação de predição do bloco de croma é obtida com base na informações de reconstrução de luma correspondente ao bloco de croma, o coeficiente de escalamento e o fator de deslocamento, onde a informações de reconstrução de luma correspondente ao bloco de croma inclui informação de redução de amostragem de um bloco reconstruído de luma correspondente ao bloco de croma.
[008] Desta forma, como uma quantidade menor de multiplicações está envolvida, uma quantidade de cálculo pode ser reduzida e, além disso, a eficiência de predição de bloco de croma pode ser melhorada.
[009] Em uma possível implementação, o método inclui ainda: obter informação de indicação, e determinar, com base na informação de indicação, um modo de intrapredição correspondente ao bloco de croma, onde o modo de intrapredição inclui pelo menos um de um modo linear LM, um modo linear acima (linear mode above, LMA) e um modo linear esquerdo (linear mode left, LML); e determinar as localizações predefinidas com base no modo de intrapredição correspondente ao bloco de croma.
[0010] Na solução mostrada nesta modalidade deste pedido, ao realizar a codificação, um lado de codificador pode codificar a informação de indicação para um fluxo de bits e, em seguida, enviar o fluxo de bits para um lado de decodificador. O lado de decodificador pode obter a informação de indicação a partir do fluxo de bits recebido, e determinar, com base na informação de indicação, o modo de intrapredição correspondente ao bloco de croma. Em seguida, o lado de decodificador determina as localizações predefinidas com base no modo de intrapredição correspondente ao bloco de croma. Desta forma, o lado de decodificador pode determinar o modo de intrapredição usado para o bloco de croma e, em seguida, determinar as localizações predefinidas com base no modo de intrapredição.
[0011] Em uma possível implementação, a obtenção de valores de croma de amostras de croma em localizações predefinidas de amostras vizinhas de um bloco de croma inclui: obter os valores de croma das amostras de croma nas localizações predefinidas das amostras vizinhas do bloco de croma com base em uma correspondência predefinida entre um modo de intrapredição e uma localização predefinida e o modo de intrapredição correspondente ao bloco de croma.
[0012] Na solução mostrada nesta modalidade deste pedido, ao realizar a decodificação, um lado de decodificador pode obter a correspondência predefinida entre um modo de intrapredição e uma localização, e determinar, a partir da correspondência, as localizações predefinidas correspondentes ao modo de intrapredição para o bloco de croma. Em seguida, o lado de decodificador obtém os valores de croma das amostras de croma nas localizações predefinidas das amostras vizinhas do bloco de croma com base nas localizações predefinidas.
[0013] Desta forma, diferentes localizações predefinidas podem ser selecionadas para diferentes modos de intrapredição, de modo que um resultado de predição de bloco de croma possa ser mais preciso.
[0014] Em uma possível implementação, coordenadas de localização das amostras vizinhas de topo do bloco de croma são (0, -1), (1, -1),..., e (X-1, -1), e as coordenadas de localização das amostras vizinhas à esquerda do bloco de croma são (–1, 0), (–1, 1),... e (–1, Y – 1), onde X representa uma largura do bloco de croma e Y representa uma altura do bloco de croma; e se o modo de intrapredição correspondente ao bloco de croma é um modo linear LM de componente cruzado, as coordenadas de localização das amostras de croma nas localizações predefinidas são (0, -1), (X -1, -1), (-1), 0) e (–1, Y – 1).
[0015] Na solução mostrada nesta modalidade deste pedido, um sistema de coordenadas de plano retangular é correspondentemente estabelecido para o bloco de croma. A primeira amostra de croma em um canto superior esquerdo do bloco de croma é usada como uma origem de coordenada, uma direção horizontal para a direita é uma direção positiva de um eixo x e uma direção vertical para o fundo é uma direção positiva de um eixo y. Desta forma, as coordenadas de localização das amostras vizinhas de topo do bloco de croma são (0, –1), (1, –1),..., e (X – 1, –1), e as coordenadas de localização das amostras vizinhas à esquerda do bloco de croma são (–1, 0), (–1, 1),..., e (–1, Y – 1), onde X representa a largura do bloco de croma (ou seja, uma quantidade de amostras em uma direção de largura do bloco de croma), e Y representa a altura do bloco de croma (ou seja, uma quantidade de amostras em uma direção de altura do bloco de croma). Quando o modo de intrapredição é um LM, as coordenadas de localização das amostras de croma nas localizações predefinidas são (0, –1), (X – 1, –1), (–1, 0) e (–1, Y -1).
[0016] Em uma possível implementação, as coordenadas de localização das amostras vizinhas de topo do bloco de croma são (0, -1), (1, -1),... e (X-1, -1), onde X representa a largura do bloco de croma; e se o modo de intrapredição correspondente ao bloco de croma for um modo linear acima LMA de componente cruzado, as coordenadas de localização nas localizações predefinidas são (0, –1), (X / 4, –1), (X – 1– X / 4, –1), e (X – 1, –1), ou (0, –1), (X / 4, –1), (3 * X / 4, –1) e (X– 1, -1).
[0017] Na solução mostrada nesta modalidade deste pedido, um sistema de coordenadas de plano retangular é correspondentemente estabelecido para o bloco de croma. A primeira amostra de croma em um canto superior esquerdo do bloco de croma é usada como uma origem de coordenada, uma direção horizontal para a direita é uma direção positiva de um eixo x, e uma direção vertical para o fundo é uma direção positiva de um eixo y. Quando o modo de intrapredição é um LMA, as coordenadas de localização nas localizações predefinidas são (0, –1), (X / 4, –1), (X – 1 – X / 4, –1) e (X– 1, –1), ou (0, –1), (X / 4, –1), (3 * X / 4, –1) e (X – 1, –1), onde X representa a largura do bloco de croma (ou seja, uma quantidade de amostras na direção de largura do bloco de croma).
[0018] Em uma possível implementação, as coordenadas de localização das amostras vizinhas à esquerda do bloco de croma são (–1, 0), (–1, 1),... e (–1, Y – 1), onde Y representa a altura do bloco de croma; e se o modo de intrapredição correspondente ao bloco de croma for um modo linear esquerdo LML de componente cruzado, as coordenadas de localização nas localizações predefinidas são (-1, 0), (-1, Y / 4), (-1, Y –1 – Y / 4), e (–1, Y – 1), ou (–1, 0), (–1, Y / 4), (–1, 3 * Y / 4) e (–1, Y – 1).
[0019] Na solução mostrada nesta modalidade deste pedido, um sistema de coordenadas de plano retangular é correspondentemente estabelecido para o bloco de croma. A primeira amostra de croma em um canto superior esquerdo do bloco de croma é usada como uma origem de coordenada, uma direção horizontal para a direita é uma direção positiva de um eixo x, e uma direção vertical para o fundo é uma direção positiva de um eixo y. Quando o modo de intrapredição é um LML, as coordenadas de localização nas localizações predefinidas são (–1, 0), (–1, Y / 4), (–1, Y – 1 – Y / 4) e (–1, Y – 1), ou (–1, 0), (–1, Y / 4), (–1, 3 * Y / 4) e (– 1, Y – 1), onde Y representa a altura do bloco de croma (ou seja, uma quantidade de amostras na direção de altura do bloco de croma).
[0020] Em uma possível implementação, a obtenção, com base em amostras vizinhas de um bloco de luma correspondente ao bloco de croma, valores de luma de amostras de luma correspondentes às amostras de croma nas localizações predefinidas inclui: determinar, a partir das amostras vizinhas do bloco de luma, que as coordenadas de localização de uma amostra de luma correspondente a uma amostra de croma em uma i-ésima localização predefinida nas localizações predefinidas são (2 * Xi, 2 * Yi), onde as coordenadas de localização da amostra de croma na i-ésima localização predefinida são (Xi, Yi); e obter, a partir das amostras vizinhas do bloco de luma correspondente ao bloco de croma com base nas coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas, os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas; ou determinar, a partir das amostras vizinhas do bloco de luma com base nas coordenadas de localização de uma amostra de croma em uma j-ésima localização predefinida nas localizações predefinidas, coordenadas de localização de uma pluralidade de amostras correspondentes à j-ésima localização predefinida; determinar, com base nas coordenadas de localização da pluralidade de amostras, as coordenadas de localização de uma amostra de luma correspondente à amostra de croma na j-ésima localização predefinida; e obter, a partir das amostras vizinhas do bloco de luma correspondente ao bloco de croma com base nas coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas, os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas.
[0021] Na solução mostrada nesta modalidade deste pedido, quando o bloco de croma é decodificado, as coordenadas de localização da amostra de croma na i-ésima localização predefinida nas localizações predefinidas são (Xi, Yi), e pode ser determinado, a partir das amostras vizinhas do bloco de luma, que as coordenadas de localização da amostra de luma correspondente à amostra de croma na i- ésima localização predefinida são (2 * Xi, 2 * Yi). Desta forma, as coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas podem ser obtidas.
[0022] Alternativamente, quando o bloco de croma é decodificado, as coordenadas de localização da amostra de croma na j-ésima localização predefinida nas localizações predefinidas são (Xj, Yj). Para a amostra de croma na j-ésima localização predefinida, a pluralidade de localizações de amostra das amostras vizinhas do bloco de luma correspondente a (Xj, Yj) são determinadas e, em seguida, as coordenadas de localização da amostra de luma correspondente à amostra de croma na j-ésima localização predefinida são obtidas com base nas coordenadas de localização da pluralidade de localizações de amostra. Por exemplo, um método de ponderação pode ser usado. As coordenadas de localização da pluralidade de localizações de amostra podem ser (2 * Xj, 2 * Yj), (2 * Xj, 2 * Yj + 1), (2 * Xj + 1, 2 * Yj), (2 * Xj + 1, 2 * Yj + 1), (2 * Xj + 2, 2 * Yj) e (2 * Xj + 2, 2 * Yj + 1), e todas as localizações de amostra correspondem a valores ponderados, que são 2 / 8, 1/8, 1/8, 2/8, 1/8 e 1/8 respectivamente. Após a ponderação ser realizada, as coordenadas de localização (2 * Xj, 2 * Yj + 0,5) da amostra de luma correspondente à amostra de croma na j-ésima localização predefinida podem ser obtidas. Além disso, um método de ponderação pode não ser usado. Isso não é limitado nesta modalidade deste pedido. Desta forma, as coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas podem ser obtidas. Então, os valores de luma podem ser obtidos a partir das amostras de luma correspondentes com base nas coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas.
[0023] Desta forma, os valores de luma podem ser determinados mais rapidamente.
[0024] Em uma possível implementação, a informação de indicação é obtida a partir de um fluxo de bits recebido.
[0025] Na solução mostrada nesta modalidade deste pedido, ao realizar a codificação, um lado de codificador pode codificar a informação de indicação indicando um modo de intrapredição no fluxo de bits e, em seguida, enviar o fluxo de bits para um lado de decodificador. O lado de decodificador pode obter a informação de indicação a partir do fluxo de bits recebido.
[0026] Desta forma, o lado de decodificador pode determinar o modo de intrapredição usado para o bloco de croma.
[0027] Em uma possível implementação, a classificação dos valores de luma obtidos em um primeiro conjunto de luma e um segundo conjunto de luma inclui: determinar um valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas; e agrupar valores de luma que estão nos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas e que são menores ou iguais ao valor médio dos valores de luma para o primeiro conjunto de luma, e agrupar valores de luma que são nos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas e que são maiores do que o valor médio dos valores de luma no segundo conjunto de luma.
[0028] Na solução mostrada nesta modalidade deste pedido, os valores de luma que estão em todos os valores de luma obtidos e que são menores ou iguais ao valor médio dos valores de luma são determinados e esses valores de luma são agrupados no primeiro conjunto de luma. Além disso, os valores de luma que estão em todos os valores de luma obtidos e que são maiores do que o valor médio dos valores de luma podem ser determinados, e esses valores de luma são agrupados no segundo conjunto de luma. Dessa forma, os valores de luma no primeiro conjunto de luma são menores do que os valores de luma no segundo conjunto de luma.
[0029] Desta forma, uma velocidade de predição de bloco de croma pode ser aumentada sem deteriorar o desempenho de codificação.
[0030] Em uma possível implementação, a classificação dos valores de luma obtidos em um primeiro conjunto de luma e um segundo conjunto de luma inclui: ordenar os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas em ordem crescente, para obter uma primeira fila de valores de luma; e se uma quantidade de amostras de luma no primeiro conjunto de valores de luma for um número par, agrupar valores de luma da primeira metade na primeira fila de valores de luma no primeiro conjunto de luma, e agrupar valores de luma da segunda metade na fila de valores de luma para o segundo conjunto de luma; ou ordenar os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas em ordem decrescente, para obter uma segunda fila de valores de luma; e se uma quantidade de amostras de luma no segundo conjunto de valores de luma for um número par, agrupar valores de luma da segunda metade na fila de valores de luma no primeiro conjunto de luma, e agrupar valores de luma da primeira metade na fila de valores de luma para o segundo conjunto de luma.
[0031] Na solução mostrada nesta modalidade deste pedido, os valores de luma obtidos são ordenados em ordem crescente, para obter a primeira fila de valores de luma. Se a quantidade de amostras de luma na primeira fila de valores de luma for um número par, os valores de luma da primeira metade na fila de valores de luma podem ser determinados e agrupados no primeiro conjunto de luma; além disso, os valores de luma da segunda metade na primeira fila de valores de luma podem ser determinados e agrupados no segundo conjunto de luma. Alternativamente, os valores de luma obtidos são ordenados em ordem decrescente, para obter a segunda fila de valores de luma. Se a quantidade de amostras de luma na segunda fila de valores de luma for um número par, os valores de luma da segunda metade na fila de valores de luma podem ser determinados e agrupados no primeiro conjunto de luma; além disso, os valores de luma da primeira metade na segunda fila de valores de luma podem ser determinados e agrupados no segundo conjunto de luma.
[0032] Desta forma, uma velocidade de predição de bloco de croma pode ser aumentada sem deteriorar o desempenho de codificação.
[0033] Em uma possível implementação, a determinação, com base em um valor médio dos valores de luma no primeiro conjunto de luma, um valor médio dos valores de luma no segundo conjunto de luma, um valor médio dos valores de croma no primeiro conjunto de croma, e um valor médio dos valores de croma no segundo conjunto de croma, um coeficiente de escalamento em um modelo linear correspondente ao bloco CLmean  CRmean = de croma inclui: LLmean  LRmean , onde α é o coeficiente de escalamento no modelo linear correspondente ao bloco de croma, CLmean é o valor médio dos valores de croma no primeiro conjunto de croma, CRmean é o valor médio dos valores de croma no segundo conjunto de croma, LLmean é o valor médio dos valores de luma no primeiro conjunto de luma, e LRmean é o valor médio dos valores de luma no segundo conjunto de luma.
[0034] Em uma possível implementação, a determinação, com base no coeficiente de escalamento, de um fator de deslocamento no modelo linear correspondente ao bloco de croma inclui: determinar, com base no coeficiente de escalamento, o valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de luma no primeiro conjunto de luma, o fator de deslocamento no modelo linear correspondente ao bloco de croma.
[0035] Na solução mostrada nesta modalidade deste pedido, o valor médio dos valores de croma no primeiro conjunto de croma pode ser determinado, e o valor médio dos valores de luma no primeiro conjunto de luma pode ser determinado. Em seguida, o fator de deslocamento no modelo linear correspondente ao bloco de croma é determinado com base no coeficiente de escalamento, o valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de luma no primeiro conjunto de luma.
[0036] Em uma possível implementação, a determinação, com base no coeficiente de escalamento, do valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de luma no primeiro conjunto de luma, o fator de deslocamento no modelo linear correspondente ao bloco de croma inclui:  =CLmean -  LLmean , onde α é o coeficiente de escalamento, β é o fator de deslocamento no modelo linear correspondente ao bloco de croma, CLmean é o valor médio dos valores de croma no primeiro conjunto de croma, e LLmean é o valor médio dos valores de luma no primeiro conjunto de luma.
[0037] Em uma possível implementação, a determinação, com base no coeficiente de escalamento, de um fator de deslocamento no modelo linear correspondente ao bloco de croma inclui: determinar, com base no coeficiente de escalamento, um valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma, o fator de deslocamento no modelo linear correspondente ao bloco de croma.
[0038] Na solução mostrada nesta modalidade deste pedido, o valor médio de todos os valores de croma obtidos pode ser determinado, e o valor médio de todos os valores de luma obtidos pode ser determinado. Em seguida, o fator de deslocamento no modelo linear correspondente ao bloco de croma é determinado com base no coeficiente de escalamento, o valor médio de todos os valores de croma, e o valor médio de todos os valores de luma.
[0039] Em uma possível implementação, a determinação, com base no coeficiente de escalamento, de um valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma, o fator de deslocamento no modelo linear correspondente ao bloco de croma inclui:  =Cmean -  Lmean , onde α é o coeficiente de escalamento, β é o fator de deslocamento no modelo linear correspondente ao bloco de croma, Cmean é o valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e é Lmean o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas.
[0040] 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 uma instrução executável por processador, e o processador implementa o método de predição de bloco de croma fornecido no primeiro aspecto executando a instrução.
[0041] De acordo com um terceiro aspecto, um aparelho de predição de bloco de croma é fornecido. O aparelho inclui um ou mais módulos, configurados para implementar o método de predição de bloco de croma fornecido no primeiro aspecto.
[0042] De acordo com um quarto aspecto, um meio de armazenamento legível por computador é fornecido. O meio de armazenamento legível por computador armazena uma instrução e quando o meio de armazenamento legível por computador é rodado em um dispositivo de computação, o dispositivo de computação é habilitado para realizar o método de predição de bloco de croma fornecido no primeiro aspecto.
[0043] De acordo com um quinto aspecto, é fornecido um produto de programa de computador incluindo uma instrução. Quando o produto de programa de computador é rodado em um dispositivo de computação, o dispositivo de computação é habilitado para realizar o método de predição de bloco de croma fornecido no primeiro aspecto.
[0044] Os efeitos benéficos trazidos pelas soluções técnicas fornecidas nas modalidades deste pedido incluem pelo menos o seguinte: nas modalidades deste pedido, durante a codificação ou decodificação, os valores de croma das amostras de croma nas localizações predefinidas podem ser obtidos a partir das amostras vizinhas do bloco de croma.
Em seguida, os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas são obtidos a partir das amostras vizinhas do bloco de luma correspondente ao bloco de croma, os valores de luma obtidos são classificados no primeiro conjunto de luma e no segundo conjunto de luma, e os valores de croma são classificados correspondentemente no primeiro conjunto de croma e no segundo conjunto de croma com base na classificação dos valores de luma.
Em seguida, o coeficiente de escalamento no modelo linear correspondente ao bloco de croma pode ser determinado com base no valor médio dos valores de luma no primeiro conjunto de luma, o valor médio dos valores de luma no segundo conjunto de luma, o valor médio do valores de croma no primeiro conjunto de croma, e o valor médio dos valores de croma no segundo conjunto de croma, e após o coeficiente de escalamento ser determinado, o fator de deslocamento no modelo linear correspondente ao bloco de croma pode ser determinado com base no coeficiente de escalamento.
Finalmente, a informação de predição do bloco de croma é determinada com base no coeficiente de escalamento, o fator de deslocamento e a informações de reconstrução de luma correspondentes ao bloco de croma.
Desta forma, durante a codificação ou decodificação, uma quantidade predefinida de valores de croma é selecionada e, em seguida, classificada em dois conjuntos de croma, e uma quantidade predefinida de valores de luma é selecionada e então classificada em dois conjuntos de luma.
Um coeficiente de escalamento em um modelo linear correspondente a um bloco de croma é determinado com base em um valor médio dos valores de luma em cada conjunto de luma e um valor médio dos valores de croma em cada conjunto de croma e, além disso, um fator de deslocamento é determinado. Como uma quantidade menor de multiplicações está envolvida, um tempo de codificação e um tempo de decodificação podem ser reduzidos.
BREVE DESCRIÇÃO DOS DESENHOS
[0045] A Figura 1 é um diagrama de blocos ilustrando um exemplo de um sistema de codificação de vídeo 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 do codificador 20 na Figura 3 e o decodificador 30 na Figura 4; a Figura 3 é um diagrama de blocos ilustrando uma estrutura de exemplo de um codificador de vídeo para implementar uma modalidade deste pedido; a Figura 4 é um diagrama de blocos ilustrando uma estrutura de exemplo de um decodificador de vídeo 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 mostra um exemplo de uma grade de amostragem em um formato de YUV; a Figura 8 mostra uma modalidade de um modo de predição de componente cruzado; a Figura 9 é um diagrama esquemático de amostras vizinhas; a Figura 10 é outro diagrama esquemático de amostras vizinhas; a Figura 11 é um fluxograma esquemático de um método de predição de bloco de croma; a Figura 12 é um diagrama esquemático de um sistema de coordenadas retangular estabelecido; a Figura 13 é um diagrama esquemático de amostras de croma em localizações predefinidas; a Figura 14 (a) e a Figura 14 (b) são diagramas esquemáticos de amostras de croma em localizações predefinidas; a Figura 15 (a) e a Figura 15 (b) são diagramas esquemáticos de amostras de croma em localizações predefinidas; a Figura 16 (a) à Figura 16 (d) são diagramas esquemáticos de amostras de croma em localizações predefinidas; e a Figura 17 é um diagrama estrutural esquemático de um aparelho de predição de bloco de croma.
DESCRIÇÃO DE MODALIDADES
[0046] 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.
[0047] Para facilitar a compreensão deste pedido, o seguinte primeiro descreve uma arquitetura de sistema e os conceitos dos termos deste pedido.
[0048] A codificação de vídeo é geralmente processar uma sequência de imagens que formam 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 no lado de origem, e geralmente inclui o processamento (por exemplo, por meio de compressão) de uma imagem de vídeo original para reduzir a quantidade de dados necessária 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 geralmente inclui processamento inverso em relação a um 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" relacionada a uma sequência de vídeo. Uma combinação de codificação e decodificação também é chamada de codificação (codificação e decodificação).
[0049] Cada imagem em 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. Para ser mais específico, do 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 sendo processado ou a ser processado) para obter um bloco residual, e o bloco residual é transformado em domínio de transformada e quantizado para reduzir uma quantidade de dados que deve ser transmitida (comprimida). No lado de decodificador, o processamento inverso em relação ao codificador é aplicado ao bloco codificado ou comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica um circuito de processamento do decodificador, de modo que o codificador e o decodificador geram a mesma predição (por exemplo, intra e interpredição) e / ou reconstrução para processamento, ou seja, codificar um bloco subsequente.
[0050] O termo "bloco" pode fazer parte de uma imagem ou quadro. Os termos-chave neste pedido são definidos da seguinte forma: bloco atual: O bloco atual é um bloco que está sendo processado. Por exemplo, durante a codificação, o bloco atual é um bloco que está sendo codificado e, durante a decodificação, o bloco atual é um bloco que está sendo decodificado. Se o bloco que está sendo processado for um bloco de componente de croma, o bloco é 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. bloco de referência: o 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; bloco de predição: um bloco que fornece predição para um bloco atual é denotado como bloco de predição. Por exemplo,
após uma pluralidade de blocos de referência serem percorridos, um bloco de referência ideal é encontrado. O bloco de referência ideal fornece predição para o bloco atual, e o bloco é referido como um bloco de predição; sinal de bloco de imagem: O sinal de bloco de imagem é um valor de amostra, um valor de amostra ou um sinal de amostra em um bloco de imagem; sinal de predição: um valor de amostra, um valor de amostragem ou um sinal de amostragem em um bloco de predição é referido como um sinal de predição.
[0051] O seguinte descreve modalidades de um codificador 20, um decodificador 30 e um sistema de codificação 10 com base na Figura 1 e na Figura 2 à Figura
4.
[0052] A Figura 1 é um diagrama de blocos conceitual ou esquemático ilustrando um sistema de codificação de exemplo 10, por exemplo, um sistema de codificação de vídeo 10 que pode usar a tecnologia deste pedido (esta divulgação). Um codificador 20 (por exemplo, um codificador de vídeo 20) e um decodificador 30 (por exemplo, um decodificador de vídeo 30) no sistema de codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar intrapredição de acordo com 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 um dispositivo de destino 14 para decodificar os dados codificados 13 ou semelhantes.
[0053] O dispositivo de origem 12 inclui o codificador 20 e, adicional ou opcionalmente, pode incluir uma origem de imagem 16, por exemplo, uma unidade de pré- processamento 18, tal como uma unidade de pré-processamento de imagem 18 e uma interface de comunicação ou unidade de comunicação 22.
[0054] A origem de imagem 16 pode incluir ou pode ser qualquer tipo de dispositivo de captura de imagem configurado para capturar uma imagem do mundo real e semelhantes, 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, uma unidade de processamento gráfico de computador configurada para gerar uma imagem de animação de 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 das mesmas (por exemplo, uma imagem de realidade aumentada (augmented reality, AR)).
[0055] Uma imagem pode ser considerada como um arranjo bidimensional ou matriz de amostras com valores de luma. A amostra no arranjo também pode ser referida como um pixel (pixel) (uma forma abreviada de um 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 da cor, geralmente são utilizados três componentes de cor, ou seja, a imagem pode ser representada como ou incluir três arranjos de amostra. No formato ou espaço de cor RBG, 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 ou espaço de cor de luminância / crominância, por exemplo, uma imagem no formato YCbCr inclui um componente de luminância indicado por Y (às vezes indicado por L) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (luma) Y indica luminância ou intensidade do nível de cinza (por exemplo, os dois são iguais em uma imagem de escala de cinza), e os dois componentes de crominância (croma para abreviar) Cb e Cr representam componentes de crominância ou informação de cor. Consequentemente, a imagem no formato YCbCr inclui um arranjo de amostra de luminância de valores de amostra de luminância (Y) e dois arranjos de amostra de crominância de valores de crominância (Cb e Cr). Uma imagem no formato RGB pode ser convertida ou transformada em uma imagem no formato YCbCr, e vice-versa. Esse processo também é conhecido como transformação ou conversão de cor. Se uma imagem for monocromática, a imagem pode incluir apenas um arranjo de amostra de luminância.
[0056] A origem de imagem 16 (por exemplo, uma origem de vídeo 16) pode ser, por exemplo, uma câmera configurada para capturar uma imagem, por exemplo, uma memória como uma memória de imagem, que inclui ou armazena uma imagem previamente capturada ou gerada, 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, integrada no dispositivo de origem, e a memória pode ser uma memória local ou uma memória integrada, integrada no dispositivo de origem. A interface pode ser, por exemplo, uma interface externa para receber uma imagem de uma origem de vídeo externa. A origem 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, uma unidade de processamento gráfico de computador externa, um computador, ou um servidor. A interface pode ser qualquer tipo de interface de acordo com qualquer protocolo de interface proprietário ou padronizado, por exemplo, uma interface com fio ou sem fio ou uma interface ótica. A interface para obter dados de imagem 17 pode ser uma interface igual à interface de comunicações 22 ou pode ser uma parte da interface de comunicações 22.
[0057] Diferente da unidade de pré-processamento 18 e processamento realizado pela unidade de pré-processamento 18, a imagem 17 ou os dados de imagem 17 (por exemplo, dados de vídeo 16) também podem ser referidos como uma imagem original 17 ou dados de imagem originais 17.
[0058] A unidade de pré-processamento 18 é configurada para receber os dados de imagem (originais) 17 e realizar o 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.
[0059] 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 adicionalmente 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.
[0060] 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, ou pode ser 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.
[0061] O dispositivo de destino 14 inclui o decodificador 30 (por exemplo, o decodificador de vídeo 30) e, adicional ou opcionalmente, pode incluir uma interface de comunicação ou unidade de comunicação 28, uma unidade de pós-processamento 32 e um dispositivo de exibição 34.
[0062] Por exemplo, a interface de comunicações 28 do dispositivo de destino 14 é configurada para receber diretamente os dados de imagem codificados 21 ou os dados codificados 13 do dispositivo de origem 12 ou qualquer outra origem. A qualquer outra origem é, por exemplo, um dispositivo de armazenamento, e o dispositivo de armazenamento é, por exemplo, um dispositivo de armazenamento de dados de imagem codificados.
[0063] 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 através de um enlace de comunicações direto entre o dispositivo de origem 12 e o dispositivo de destino 14 ou através de qualquer tipo de rede. O enlace de comunicações direto é, por exemplo, uma conexão direta com ou sem fio, e 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.
[0064] A interface de comunicações 22 pode ser, por exemplo, configurada para encapsular os dados de imagem codificados 21 em um formato adequado, como um pacote para transmissão através de um enlace de comunicações ou uma rede de comunicações.
[0065] A interface de comunicações 28 como uma parte correspondente da interface de comunicações 22 pode ser configurada para desencapsular os dados codificados 13 para obter os dados de imagem codificados 21 e semelhantes.
[0066] Tanto a interface de comunicações 22 quanto a interface de comunicações 28 podem ser configuradas como interfaces de comunicações unidirecionais, por exemplo, uma seta apontando a partir do dispositivo de origem 12 para o dispositivo de destino 14 que são usados para os dados de imagem codificados 13 na Figura 1, ou podem ser configuradas como interfaces de comunicações bidirecionais, e podem ser, por exemplo, configuradas para enviar e receber uma mensagem para estabelecer uma conexão, e confirmar e trocar qualquer outra informação relacionada a um enlace de comunicações e / ou transmissão de dados, tal como transmissão de dados de imagem codificada.
[0067] 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.
[0068] A unidade de pós-processamento 32 do dispositivo de destino 14 é configurada para pós-processar os dados de imagem decodificados 31 (também referidos como dados de imagem reconstruídos), como a imagem decodificada 31, para obter dados de imagem pós-processados 33, como 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, reamostragem ou qualquer outro processamento para preparar os dados de imagem decodificados 31 para exibição pelo dispositivo de exibição 34.
[0069] O dispositivo de exibição 34 do dispositivo de destino 14 é configurado para receber os dados de imagem pós-processados 33 para exibir a imagem a um usuário, um visualizador, ou semelhantes. O dispositivo de exibição 34 pode ser ou pode incluir qualquer tipo de tela configurada para apresentar uma imagem reconstruída, por exemplo, uma tela ou monitor integrado ou externo. Por exemplo, a tela pode incluir uma tela de cristal líquido (liquid crystal display, LCD), uma tela de diodo emissor de luz orgânico (organic light emitting diode, OLED), uma tela de plasma, um projetor, uma tela de micro-LED, uma tela de 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.
[0070] Embora a Figura 1 represente o dispositivo de origem 12 e o dispositivo de destino 14 como dispositivos separados, modalidades de dispositivo também podem incluir o dispositivo de origem 12 e o dispositivo de destino 14 ou ambas uma função do dispositivo de origem 12 e uma função do dispositivo de destino 14, isto é, o dispositivo de origem 12 ou a função correspondente e o dispositivo de destino 14 ou a função correspondente. Em tais modalidades, o dispositivo de origem 12 ou a função correspondente e o dispositivo de destino 14 ou a função correspondente podem ser implementados usando o mesmo hardware e / ou software, hardware e / ou software separados ou qualquer combinação dos mesmos.
[0071] Com base nas descrições, uma pessoa versada na técnica compreende facilmente que a existência e divisão (precisa) de funções de diferentes unidades ou funções / uma função do dispositivo de origem 12 e / ou do dispositivo de destino 14 mostrado na Figura 1 podem variar com um dispositivo e aplicação reais.
[0072] 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, um processador de sinal digital (digital signal processor, DSP), um circuito integrado de aplicação específica (application-specific integrated circuit, ASIC), um arranjo de portas programáveis em campo (field-programmable gate array, FPGA), lógica discreta, hardware ou qualquer combinação dos mesmos. Se a tecnologia for parcialmente implementada em software, o dispositivo pode armazenar uma instrução de software em um meio de armazenamento legível por computador não transitório adequado, e pode executar a instrução em hardware usando um ou mais processadores para realizar as tecnologias nesta 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 qualquer um dos codificadores ou decodificadores pode ser integrado como parte de um codificador / decodificador combinado (um codec) em um dispositivo correspondente.
[0073] 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, cada um, pode ser um exemplo de um dispositivo de codificação de vídeo ou um aparelho de decodificação de vídeo.
[0074] O dispositivo de origem 12 e o dispositivo de destino 14 cada um pode incluir um de vários dispositivos, incluindo qualquer tipo de dispositivo portátil ou estacionário, por exemplo, um notebook ou laptop, um telefone móvel, um telefone inteligente, um tablet ou um computador 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 transmissão contínua (“streaming”) de vídeo (como um servidor de serviço de conteúdo ou um servidor de distribuição 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.
[0075] 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ções sem fio.
[0076] Em alguns casos, o sistema de codificação de vídeo 10 mostrado na Figura 1 é apenas um exemplo e as tecnologias neste pedido podem ser aplicadas a uma configuração de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não precisa incluir 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, transmitidos por uma rede ou semelhantes. Um dispositivo de codificação de vídeo pode codificar dados e armazenar os dados em uma memória e / ou um dispositivo de decodificação de vídeo pode recuperar os dados da memória e decodificar os dados. Em alguns exemplos, a codificação e a decodificação são realizadas por dispositivos que não se comunicam entre si, mas apenas codificam dados para uma memória e / ou recuperam os dados a partir da memória e decodificam os dados.
[0077] Deve ser entendido que, para cada um dos exemplos anteriores descritos com referência ao codificador de vídeo 20, o decodificador de vídeo 30 pode ser configurado para realizar um processo inverso. Para um elemento de sintaxe de sinalização, o decodificador de vídeo 30 pode ser configurado para receber e analisar o elemento de sintaxe e decodificar dados de vídeo relacionados em conformidade. Em alguns exemplos, o codificador de vídeo 20 pode codificar por entropia um elemento de sintaxe em um fluxo de bits de vídeo codificado. Em tais exemplos, o decodificador de vídeo 30 pode analisar o elemento de sintaxe e decodificar os dados de vídeo relacionados em conformidade.
[0078] A Figura 2 é um diagrama ilustrando 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. Na implementação ilustrada, 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 decodificador de vídeo implementado por 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.
[0079] 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 com o codificador de vídeo 20 e o decodificador de vídeo 30, em diferentes exemplos, 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.
[0080] 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 um fluxo de bits codificado 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), uma unidade de processamento gráfico, um processador de propósito geral ou semelhantes. O sistema de codificação de vídeo 40 também pode incluir o processador opcional 43. O processador opcional 43 pode similarmente incluir lógica de circuito integrado de aplicação específica, uma unidade de processamento gráfico, um processador de propósito geral ou semelhantes. Em alguns exemplos, o circuito lógico 47 pode ser implementado por hardware, como hardware dedicado de codificação de vídeo, e o processador 43 pode ser implementado por software universal, 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 por uma memória cache. Em alguns exemplos, o circuito lógico 47 pode acessar a memória 44 (por exemplo, para implementar um buffer de imagem). Em outros exemplos, o circuito lógico 47 e / ou a unidade de processamento 46 podem incluir uma memória (por exemplo, um cache) para implementar um buffer de imagem ou semelhantes.
[0081] Em alguns exemplos, o codificador de vídeo 20 implementado pelo circuito lógico pode incluir um buffer de imagem (por exemplo, implementado pela unidade de processamento 46 ou a memória 44) e uma unidade de processamento gráfico (por exemplo, implementado 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 codificador de vídeo 20 implementado pelo circuito lógico 47, para implementar vários módulos que são descritos com referência à Figura 2 e / ou qualquer outro sistema ou subsistema de codificador descrito neste relatório descritivo. O circuito lógico pode ser configurado para realizar várias operações descritas neste relatório descritivo.
[0082] O decodificador de vídeo 30 pode ser similarmente implementado pelo circuito lógico 47, para implementar vários módulos que são descritos com referência ao decodificador 30 na Figura 4 e / ou qualquer outro sistema ou subsistema de decodificador descrito neste relatório descritivo. Em alguns exemplos, o decodificador de vídeo 30 implementado pelo circuito lógico pode incluir um buffer de imagem (implementado pela unidade de processamento 46 ou a memória 44) e uma unidade de processamento gráfico (por exemplo, implementada 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 pelo circuito lógico 47, para implementar vários módulos que são descritos com referência à Figura 4 e / ou qualquer outro sistema ou subsistema de decodificador descrito neste relatório descritivo.
[0083] Em alguns exemplos, a antena 42 do sistema de codificação de vídeo 40 pode ser configurada para receber um fluxo de bits codificado de 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 descrita 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 particionamento de codificação de definição de dados). 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
[0084] 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 neste pedido (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 imagem). 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 codec de vídeo híbrido.
[0085] 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, e 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 230, a unidade de processamento de predição 260 e semelhantes 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 (referindo-se a um decodificador 30 na Figura 4).
[0086] O codificador 20 recebe uma imagem 201 ou um bloco 203 da imagem 201 usando uma entrada 202 ou semelhantes, por exemplo, uma imagem em uma sequência de imagens que formam 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, e a imagem 201 pode ser referida como uma imagem atual ou uma imagem a-ser-codificada (especialmente quando a imagem atual se distingue de outra imagem na codificação de vídeo; outras imagens, por exemplo, em uma mesma sequência de vídeo, também incluem imagens previamente codificadas e / ou decodificadas na sequência de vídeo da imagem atual). Particionamento
[0087] A 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 não sobrepostos, como blocos 203. 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 um raster correspondente definindo o tamanho de bloco, ou pode ser configurado para: alterar um tamanho de bloco entre imagens, subconjuntos ou grupos de imagens, e particionar cada imagem em blocos correspondentes.
[0088] 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 anteriores.
[0089] Por exemplo, na imagem 201, o bloco 203 também é ou pode ser considerado como um arranjo bidimensional ou matriz de amostras com valores de luminância (valores de amostra), embora um tamanho do bloco 203 seja menor do que aquele da imagem 201. Em outras palavras, o bloco 203 pode incluir, por exemplo, um arranjo de amostra (por exemplo, um arranjo de luminância no caso de uma imagem monocromática 201), três arranjos de amostra (por exemplo, um arranjo de luminância e dois arranjos de crominância no caso de uma imagem colorida), ou qualquer outra quantidade e / ou tipo de arranjos com base em um formato de cor usado. Uma quantidade de amostras nas direções horizontal e vertical (ou eixos) do bloco 203 define o tamanho do bloco 203.
[0090] 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
[0091] 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 (mais detalhes sobre o bloco de predição 265 são fornecidos abaixo), por exemplo, obter o bloco residual 205 em um domínio de amostra subtraindo um valor de amostra do bloco de predição 265 a partir de um valor de amostra do bloco de imagem 203 amostra por amostra (sample by sample). Transformada
[0092] A unidade de processamento de transformada 206 é configurada para aplicar transformada, tal como transformada de cosseno discreta (discrete cosine transform,
DCT) ou transformada de seno discreta (discrete sine transform, DST) a um valor de amostra do bloco residual 205, para obter um coeficiente de transformada 207 em um domínio de transformada. O coeficiente de transformada 207 também pode ser referido como um coeficiente de transformada residual, e indica o bloco residual 205 no domínio de transformada.
[0093] A unidade de processamento de transformada 206 pode ser configurada para aplicar aproximação de inteiro de DCT / DST, por exemplo, transformada especificada em HEVC / H.265. Esta aproximação de número inteiro é geralmente escalada proporcionalmente por um fator em comparação com a transformada DCT ortogonal. Para manter a norma de um bloco residual obtido por meio de transformada direta e transformada inversa, um fator de escala adicional é aplicado como parte do processo de transformada. O fator de escala é geralmente selecionado com base em algumas condições de restrição, por exemplo, é uma potência de 2, uma profundidade de bits de um coeficiente de transformada, ou compensação entre precisão e custos de implementação que é usada para uma operação de desvio. Por exemplo, um fator de escala específico é especificado para a transformada inversa em um lado de decodificador 30 usando a unidade de processamento de transformada inversa 212 (e correspondentemente, para a transformação inversa em um lado de codificador 20 usando a unidade de processamento de transformada inversa 212 ou semelhantes), e, correspondentemente, um fator de escala correspondente pode ser especificado para a transformada direta em um lado de codificador 20 usando a unidade de processamento de transformada 206.
Quantização
[0094] A unidade de quantização 208 é configurada para quantizar o coeficiente de transformada 207 por aplicar quantização de escala, quantização vetorial ou semelhantes, para obter um coeficiente de transformada quantizado 209. O coeficiente de transformada quantizado 209 também pode ser referido como um coeficiente residual quantizado 209. O processo de quantização pode reduzir uma profundidade de bits 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 do que m. Um grau de quantização pode ser modificado ajustando um parâmetro de quantização (quantization parameter, QP). Por exemplo, para quantização de escala, escalas diferentes podem ser aplicadas para alcançar quantização mais fina ou mais grosseira. Um passo de quantização menor corresponde a uma quantização mais fina, e um passo de quantização maior corresponde a uma quantização mais grosseira. Um passo de quantização adequado pode ser indicado usando um parâmetro de quantização. Por exemplo, o parâmetro de quantização pode ser um índice de um conjunto predefinido de passos de quantização adequados. Por exemplo, um parâmetro de quantização menor pode corresponder a quantização mais fina (um passo de quantização menor) e um parâmetro de quantização maior pode corresponder a quantização mais grosseira (um passo de quantização maior) e vice-versa. A quantização pode incluir divisão por um passo de quantização e quantização correspondente ou quantização inversa realizada pela unidade de quantização inversa 210 ou semelhante, ou pode incluir multiplicação por um passo de quantização. Em modalidades de acordo com alguns padrões, como HEVC, um parâmetro de quantização pode ser usado para determinar um passo de quantização. Geralmente, o passo de quantização pode ser calculado com base no parâmetro de quantização por meio de aproximação de ponto fixo de uma equação incluindo divisão. Fatores de escala adicionais podem ser introduzidos para quantização e quantização inversa, para restaurar a norma que é de um bloco residual e que pode ser modificada por causa de uma escala usada na aproximação de ponto fixo da equação usada para o passo de quantização e o parâmetro de quantização. Em uma implementação de exemplo, uma escala de transformada inversa pode ser combinada com uma escala de quantização inversa. Alternativamente, uma tabela de quantização personalizada pode ser usada e sinalizada a partir de um codificador para um decodificador, por exemplo, em um fluxo de bits. A quantização é uma operação com perdas, e um passo de quantização maior indica uma perda maior.
[0095] 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 quantizado inverso 211, por exemplo, aplicar, com base em ou usando um mesmo passo de quantização que a unidade de quantização 208, um esquema de quantização inversa do esquema de quantização aplicado pela unidade de quantização 208. O coeficiente quantizado inverso 211 também pode ser referido como um coeficiente residual quantizado inverso 211 e corresponde ao coeficiente de transformada 207, embora uma perda causada pela quantização geralmente é diferente do coeficiente de transformada.
[0096] A unidade de processamento de transformada inversa 212 é configurada para aplicar a transformada inversa da transformada aplicada pela unidade de processamento de transformada 206, por exemplo, transformada de cosseno discreta inversa ou transformada de seno discreta inversa, para obter um bloco de transformada inversa 213 em um domínio de amostra. O bloco de transformada inversa 213 também pode ser referido como um bloco quantizado inversamente de transformada inversa 213 ou um bloco residual de transformada inversa 213.
[0097] A unidade de reconstrução 214 (por exemplo, um somador 214) é configurada para adicionar o bloco de transformada inversa 213 (isto é, um bloco residual reconstruído 213) ao bloco de predição 265 para obter um bloco reconstruído 215 no domínio de amostra, por exemplo, adicionando um valor de amostra do bloco residual reconstruído 213 e um valor de amostra do bloco de predição
265.
[0098] Opcionalmente, a unidade de buffer 216 (ou o "buffer" 216 para abreviar), tal como um buffer de linha 216, é configurada para buffer ou armazenar o bloco reconstruído 215 e um valor de amostra correspondente para intrapredição e semelhantes. Em outras modalidades, um 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, como intrapredição.
[0099] Por exemplo, a modalidade do codificador 20 pode ser configurada, de modo que a unidade de buffer 216 não seja apenas configurada para armazenar o bloco reconstruído 215 para intrapredição, mas também configurada para armazenar o bloco filtrado 221 da unidade de filtro de loop 220 (não mostrado na Figura 3), e / ou a unidade de buffer 216 e a unidade de buffer de imagens decodificadas 230 formam um buffer. Outras modalidades podem ser usadas para usar um bloco filtrado 221 e / ou um bloco ou uma amostra a partir do buffer de imagens decodificadas 230 (não mostrado na Figura 3) como uma entrada ou uma base para intrapredição.
[00100] A unidade de filtro de loop 220 (ou o "filtro de loop" 220 para abreviar) é configurada para realizar a filtragem no bloco reconstruído 215 para obter o bloco filtrado 221, de modo a realizar suavemente transformação 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, por exemplo, um filtro de deblocagem, um filtro de deslocamento adaptativo de amostra (sample-adaptive offset, SAO) ou 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 cooperativo. Embora a unidade de filtro de loop 220 seja mostrada na Figura 3 como um filtro em-loop, a unidade de filtro de loop 220 pode ser implementada como um filtro pós-loop em outras configurações. O bloco 221 filtrado também pode ser referido como um bloco reconstruído filtrado 221. O buffer de imagens decodificadas 230 pode armazenar o bloco de codificação reconstruído após a unidade de filtro de loop 220 realizar uma operação de filtragem no bloco de codificação reconstruído.
[00101] A modalidade do codificador 20 (correspondentemente, a unidade de filtro de loop 220) pode ser usada para emitir um parâmetro de filtro de loop (por exemplo, informação de deslocamento adaptativo de amostra), por exemplo, emitir diretamente um parâmetro de filtro de loop ou emitir um parâmetro de filtro de loop após a unidade de codificação de entropia 270 ou qualquer outra unidade de codificação de entropia realizar a codificação de entropia, de modo que o decodificador 30 possa receber e aplicar um mesmo parâmetro de filtro de loop para decodificação e semelhantes.
[00102] O buffer de imagens decodificadas 230 pode ser uma memória de imagem de referência que armazena dados de imagem de referência para o codificador de vídeo 20 para codificar dados de vídeo. O DPB 230 pode ser qualquer um de uma pluralidade de memórias, por exemplo, 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), ou uma RAM resistiva (resistive RAM, RRAM)), ou outro tipo de memória. O DPB 230 e o buffer 216 podem ser fornecidos por uma mesma memória ou memórias separadas. 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 ser ainda configurado para armazenar outros blocos filtrados anteriores, tais como blocos previamente reconstruídos e filtrados 221 de um mesma imagem atual ou imagens diferentes, como imagens reconstruídas anteriores, e pode fornecer uma reconstrução anterior completa, isto é, imagem decodificada (e um bloco de referência correspondente e uma amostra correspondente) e / ou uma imagem atual parcialmente reconstruída (e um bloco de referência correspondente e uma amostra correspondente) para interpredição e semelhantes. Em um exemplo, se o bloco reconstruído 215 for reconstruído sem filtragem em-loop, o buffer de imagens decodificadas 230 é configurado para armazenar o bloco reconstruído 215.
[00103] A unidade de processamento de predição 260 também é referida como uma unidade de processamento de predição de bloco 260, e é configurada para: receber ou obter o bloco 203 (o bloco atual 203 da imagem atual 201) e dados de imagem reconstruídos, por exemplo, uma amostra de referência de uma mesma imagem (atual) no buffer 216 e / ou dados de imagem de referência 231 a partir de uma ou mais imagens decodificadas anteriores no buffer de imagens decodificadas 230 e processar tais dados para predição, isto é, fornecer um bloco de predição 265 que pode ser um bloco de interpredição 245 ou um bloco de intrapredição 255.
[00104] 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 como o bloco de predição 265, para calcular o bloco residual 205 e reconstruir o bloco reconstruído 215.
[00105] A modalidade da unidade de seleção de modo 262 pode ser usada para selecionar um modo de predição (por exemplo, a partir de modos de predição suportados pela unidade de processamento de predição 260). O modo de predição fornece uma melhor combinação ou um mínimo resíduo (o mínimo resíduo significa melhor compressão na transmissão ou armazenamento), ou fornece sobrecargas de sinalização mínimas (as sobrecargas de sinalização mínimas significam melhor compressão na transmissão ou armazenamento), ou considera ou equilibra os dois. A unidade de seleção de modo 262 pode ser configurada para determinar um modo de predição com base na otimização de distorção de taxa (Rate Distortion Optimization, RDO), isto é, selecionar um modo de predição que fornece otimização de distorção de taxa mínima ou selecionar um modo de predição em que a distorção de taxa relacionada pelo menos satisfaz um critério de seleção de modo de predição.
[00106] O processamento de predição (por exemplo, usando a unidade de processamento de predição 260) e a seleção de modo (por exemplo, usando a unidade de seleção de modo 262) realizado por um exemplo do codificador 20 são descritos em detalhes abaixo.
[00107] Conforme descrito acima, o codificador 20 é configurado para determinar ou selecionar um modo de predição melhor ou ótimo a partir de um conjunto de modos de predição (predeterminado). O conjunto de modos de predição pode incluir, por exemplo, um modo de intrapredição e / ou um modo de interpredição.
[00108] O conjunto de modos de intrapredição pode incluir 35 modos de intrapredição diferentes, ou pode incluir 67 modos de intrapredição diferentes, ou pode incluir o desenvolvimento de modos de intrapredição definidos em H.266.
[00109] O conjunto de modos de interpredição depende de uma imagem de referência disponível (por exemplo, pelo menos uma parte da imagem decodificada armazenada no DBP 230) e outros parâmetros de interpredição, por exemplo, depende de se toda a imagem de referência é usada ou apenas uma parte da imagem de referência é usada, por exemplo, uma região de janela de busca em torno de uma região de um bloco atual é pesquisada para um bloco de referência mais adequado e / ou depende se a interpolação de amostra, como interpolação de meia amostra e / ou de um quarto de amostra é aplicada.
[00110] Além dos modos de predição anteriores, um modo de salto e / ou um modo direto também pode ser aplicado.
[00111] 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 predição e semelhantes 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 aplicado a cada uma das partições de bloco ou sub-blocos.
[00112] A unidade de interpredição 244 pode incluir uma unidade de estimativa de movimento (estimativa de movimento, 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 a imagem decodificada 31, ou pelo menos um ou mais blocos reconstruídos anteriores, por exemplo, um ou mais outros blocos reconstruídos diferentes a partir da imagem decodificada anterior 31, para realizar estimativa de movimento. Por exemplo, uma sequência de vídeo pode incluir a imagem atual e a imagem decodificada anterior 31. Em outras palavras, a imagem atual e a imagem decodificada anterior 31 podem ser uma parte de uma sequência de imagens que formam a sequência de vídeo, ou formam a sequência de imagem.
[00113] 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 uma imagem de referência e / ou um deslocamento (um deslocamento espacial) entre uma localização (coordenadas X-Y) do bloco de referência e uma localização do bloco atual como um parâmetro de interpredição para a unidade de estimativa de movimento (não mostrada na Figura 3). Este deslocamento também é conhecido como vetor de movimento (motion vector, MV).
[00114] A unidade de compensação de movimento é configurada para: obter, por exemplo, receber um 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. A compensação de movimento realizada pela unidade de compensação de movimento (não mostrada na Figura 3) pode incluir buscar ou gerar o bloco de predição com base em um vetor de movimento / bloco determinado através da estimativa de movimento (possivelmente realizando interpolação na precisão de subamostra). Durante a filtragem de interpolação, uma amostra adicional pode ser gerada a partir de amostras conhecidas, aumentando assim potencialmente uma quantidade de blocos de predição candidatos que podem ser usados para codificar um bloco de imagem. Uma vez que um vetor de movimento usado para uma PU de um bloco de imagem atual é recebido, a unidade de compensação de movimento 246 pode localizar um bloco de predição para o qual o vetor de movimento aponta em uma lista de imagens de referência. A unidade de compensação de movimento 246 pode ainda 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 ao decodificar um bloco de imagem da fatia de vídeo.
[00115] A unidade de intrapredição 254 é configurada para obter, por exemplo, receber um bloco de imagem 203 (um bloco de imagem atual) da mesma imagem e um ou mais blocos reconstruídos anteriores, tais como blocos vizinhos reconstruídos, para realizar intra-estimativa. 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.
[00116] A modalidade do codificador 20 pode ser configurada para selecionar um modo de intrapredição com base em 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.
[00117] A unidade de intrapredição 254 é ainda configurada para determinar o bloco de intrapredição 255 com base em um parâmetro de intrapredição do modo de intrapredição selecionado. Em qualquer caso, depois de selecionar o modo de intrapredição usado para um bloco, a unidade de intrapredição 254 é ainda configurada para fornecer o parâmetro de intrapredição para a unidade de codificação de entropia 270, isto é, fornecer informação para indicar o modo de intrapredição selecionado usado para um bloco. Em um exemplo, a unidade de intrapredição 254 pode ser configurada para realizar qualquer combinação das seguintes tecnologias de intrapredição.
[00118] A unidade de codificação de entropia 270 é configurada para aplicar 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 (context adaptive VLC, CAVLC), um esquema de codificação aritmética, um esquema de codificação aritmética binária adaptativa ao contexto (context adaptive binary arithmetic coding, CABAC), um esquema de codificação aritmética binária adaptativa ao contexto baseada em sintaxe (syntax-based context-adaptive binary arithmetic coding, SBAC), um esquema de codificação de entropia de particionamento de intervalo de probabilidade (probability interval partitioning entropy, PIPE), ou outro método ou tecnologia de codificação de entropia) para um ou mais (ou nenhum) do coeficiente residual 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 usando uma saída 272, por exemplo, na forma de um fluxo de bits codificado. O fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30, ou pode ser arquivado para posterior transmissão ou recuperação pelo decodificador de vídeo 30. A unidade de codificação de entropia 270 pode ser ainda configurada para realizar codificação de entropia em outro elemento de sintaxe da fatia de vídeo atual que está sendo codificado.
[00119] Outra variante estrutural do codificador de vídeo 20 pode ser configurada para codificar um fluxo de vídeo. Por exemplo, o 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 unidade.
[00120] A Figura 4 mostra um exemplo de um decodificador de vídeo 30, configurado para implementar as tecnologias neste pedido. O decodificador de vídeo 30 é configurado para receber dados de imagem codificados (por exemplo, um fluxo de bits codificado) 21 codificados pelo codificador 20 ou semelhantes, para obter uma imagem decodificada 31. 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 indica um bloco de imagem de uma fatia de vídeo codificada e um elemento de sintaxe associado.
[00121] 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 passagem de decodificação geralmente recíproca à passagem de codificação descrita com referência ao codificador de vídeo 20 na Figura 3.
[00122] A unidade de decodificação de entropia 304 é configurada para realizar a decodificação de entropia nos dados de imagem codificados 21, para obter um coeficiente quantizado 309, um parâmetro de codificação decodificado (não mostrado na Figura 4) e / ou semelhantes, 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 (decodificado). 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 um elemento de sintaxe em um nível de fatia de vídeo e / ou um elemento de sintaxe em um nível de bloco de vídeo.
[00123] 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 e o buffer de imagens decodificadas 330 pode ter a mesma função que o buffer de imagens decodificadas 230.
[00124] 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 ter uma função semelhante àquela da unidade de interpredição 244, e a unidade de intrapredição 354 pode ter uma função semelhante àquela da unidade de intrapredição 254. 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 relacionado à predição e / ou informação sobre um modo de predição selecionado, por exemplo, a partir da unidade de decodificação de entropia 304.
[00125] 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 usado para um bloco de imagem da fatia de vídeo atual com base em um modo de intrapredição sinalizado e dados de um bloco decodificado anterior de um quadro ou imagem atual. Quando um quadro de vídeo é codificado como uma fatia intercodificada (isto é, 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 usado para um bloco de vídeo da fatia de vídeo atual com base em um vetor de movimento e outro elemento de sintaxe recebido a partir da unidade de decodificação de entropia 304. Para interpredição, um 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 com base em uma imagem de referência armazenada no DPB 330.
[00126] A unidade de processamento de predição 360 é configurada para: determinar a informação de predição usada para o bloco de vídeo da fatia de vídeo atual, analisando o vetor de movimento e o outro elemento de sintaxe, e usar a informação de predição para gerar o bloco de predição usado 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) usado para codificar um bloco de vídeo de uma fatia de vídeo, um tipo de fatia de interpredição (por exemplo, uma fatia B, fatia P ou fatia GPB), informação de construção de uma ou mais das imagens em uma lista de imagens de referência usada para uma fatia, um vetor de movimento de cada bloco de vídeo intercodificado usado para uma fatia, um estado de interpredição de cada bloco de vídeo intercodificado usado para uma fatia, e outra informação, para decodificar o bloco de vídeo da fatia de vídeo atual.
[00127] A unidade de quantização inversa 310 pode ser configurada para realizar a quantização inversa (isto é, desquantização) em um coeficiente de transformada quantizado fornecido no fluxo de bits e decodificado pela unidade de decodificação de entropia 304. O 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, para determinar um grau de quantização que deve ser aplicado e determinar um grau de quantização inversa que deve ser aplicado.
[00128] A unidade de processamento de transformada inversa 312 é configurada para aplicar a transformada inversa (por exemplo, DCT inversa, transformada de inteiro inversa, ou um processo de transformada inversa conceitualmente semelhante) ao coeficiente de transformada, para gerar um bloco residual em um domínio de amostra.
[00129] A unidade de reconstrução 314 (por exemplo, o somador 314) é configurada para adicionar um bloco de transformada inversa 313 (isto é, um bloco residual reconstruído 313) ao bloco de predição 365, para obter um bloco reconstruído 315 em um domínio de amostra, por exemplo, adicionando um valor de amostra do bloco residual reconstruído 313 a um valor de amostra do bloco de predição
365.
[00130] A unidade de filtro de loop 320 (em 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, de modo a realizar suavemente transformaçã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 das seguintes tecnologias de filtragem. A unidade de filtro de loop 320 se destina a representar um ou mais filtros de loop, por exemplo, um filtro de deblocagem, um filtro de deslocamento adaptativo de amostra (sample-adaptive offset, SAO) ou 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 320 seja mostrada na Figura 4 como um filtro em-loop, a unidade de filtro de loop 320 pode ser implementada como um filtro pós-loop em outras configurações.
[00131] O bloco filtrado 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.
[00132] O decodificador 30 é configurado para emitir a imagem decodificada 31 usando uma saída 332, e semelhantes, para apresentar a imagem decodificada 31 para o usuário ou fornecer a imagem decodificada 31 para o usuário visualizar.
[00133] Outra variação do decodificador de vídeo 30 pode ser configurada 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, o decodificador não baseado em transformada 30 pode desquantizar 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 que são combinadas em uma unidade.
[00134] A Figura 5 é um diagrama estrutural esquemático 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 uma modalidade descrita 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.
[00135] O dispositivo de codificação de vídeo 400 inclui: uma porta de ingresso 410 e uma unidade receptora (Rx) 420 que são configuradas para receber dados; um processador, uma unidade lógica ou uma unidade de processamento central (CPU) 430 que é configurada para processar dados; uma unidade transmissora (Tx) 440 e uma porta de egresso 450 que são configuradas para transmitir dados; e uma memória 460 configurada para armazenar dados. O dispositivo de codificação de vídeo 400 pode ainda incluir um componente de conversão ótico-para-elétrico e um componente de conversão elétrico-para-ótico (EO) que são acoplados à porta de ingresso 410, a unidade receptora 420, a unidade transmissora 440 e a porta de egresso 450, para servir como uma saída ou entrada de um sinal ótico ou um sinal elétrico.
[00136] O processador 430 é implementado usando 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 ou DSPs. O processador 430 se comunica com a porta de ingresso 410, a unidade receptora 420, a unidade transmissora 440, a porta de egresso 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 realiza, processa ou fornece várias operações de codificação. Portanto, o módulo de codificação / decodificação 470 expande substancialmente as funções do dispositivo de codificação de vídeo 400 e afeta a conversão do dispositivo de codificação de vídeo 400 em diferentes estados. Alternativamente, o módulo de codificação / decodificação 470 é implementado usando uma instrução armazenada na memória 460 e executada pelo processador 430.
[00137] 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, e é configurada para armazenar programas quando esses programas são executados seletivamente, e armazenar instruções e dados que são lidos durante a 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 (read-only memory, ROM), uma memória de acesso aleatório (random access memory, 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).
[00138] A Figura 6 é um diagrama de blocos simplificado de um aparelho 500 que pode ser usado como qualquer um ou dois do dispositivo de origem 12 e do 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 que é configurado para implementar predição de bloco de croma pode usar uma forma de um sistema de computação incluindo uma pluralidade de dispositivos de computação, ou pode usar uma forma de um único dispositivo de computação, como um telefone móvel, um computador tablet, um computador laptop, um notebook ou um computador de mesa.
[00139] 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 dispositivos existentes ou futuros que podem controlar ou processar informação. 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.
[00140] Em uma implementação, uma memória 504 no aparelho 500 pode ser um dispositivo de memória somente de leitura ou um dispositivo de memória de acesso aleatório. 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 usando 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 para realizar 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 em conjunto com um dispositivo de computação móvel. Como uma sessão de comunicação de vídeo pode conter uma grande quantidade de informação, a informação pode ser completamente ou parcialmente armazenada na memória secundária 514 e carregada na memória 504 para processamento conforme necessário.
[00141] O aparelho 500 pode ainda incluir um ou mais dispositivos de saída, por exemplo, uma tela 518. Em um exemplo, a tela 518 pode ser uma tela sensível ao toque que combina uma tela com um elemento sensível ao toque que pode ser operado para detectar uma entrada de toque. A tela 518 pode ser acoplada ao processador 502 usando o barramento
512. Além da tela 518, outro dispositivo de saída que permite a um usuário programar o aparelho 500 ou usar o aparelho 500 de outra maneira pode ser ainda fornecido, ou outro dispositivo de saída pode ser fornecido como uma alternativa à tela 518. Quando o dispositivo de saída é uma tela ou inclui uma tela, a tela pode ser implementada de forma diferente, por exemplo, usando uma tela de cristal líquido, uma tela de tubo de raios catódicos (cathode-ray tube, CRT), tela de plasma, ou tela de diodo emissor de luz (LED), como tela de LED orgânico (organic LED, OLED).
[00142] O aparelho 500 pode ainda incluir um dispositivo de detecção de imagem 520, ou pode ser conectado ao dispositivo de detecção de imagem 520. O dispositivo de detecção de imagem 520 é, por exemplo, uma câmera ou qualquer outro dispositivo de detecção de imagem existente ou futuro
520 que pode detectar uma imagem. A imagem é, por exemplo, uma imagem de um usuário que opera o aparelho 500. O dispositivo de detecção de imagem 520 pode ser colocado diretamente de frente para o usuário que opera o aparelho
500. Em um exemplo, uma localização e um eixo ótico do dispositivo de detecção de imagem 520 podem ser configurados, de modo que um campo de visão do dispositivo de detecção de imagem 520 inclua uma região adjacente à tela 518 e a tela 518 possa ser vista a partir da região.
[00143] O aparelho 500 pode ainda incluir um dispositivo de detecção de som 522, ou pode ser conectado ao dispositivo de detecção de som 522. O dispositivo de detecção de som 522 é, por exemplo, um microfone ou qualquer outro dispositivo de detecção de som existente ou futuro que possa detectar um som perto do aparelho 500. O dispositivo de detecção de som 522 pode ser colocado diretamente de frente para o usuário que roda o aparelho 500, e pode ser configurado para receber um som, como uma voz ou outro som que é feito pelo usuário quando o usuário roda o aparelho
500.
[00144] Embora o processador 502 e a memória 504 do aparelho 500 sejam integrados em uma unidade, como ilustrado na Figura 6, outras configurações podem ser usadas. O funcionamento do processador 502 pode ser distribuído em uma pluralidade de máquinas que podem ser acopladas diretamente (cada máquina tem um ou mais processadores) ou podem ser distribuídas em uma região local ou em outra rede. A memória 504 pode ser distribuída em uma pluralidade de máquinas, como uma memória baseada em rede e uma memória em uma pluralidade de máquinas que rodam o aparelho 500. Embora um único barramento seja desenhado aqui, pode haver uma pluralidade de barramentos 512 do aparelho 500. Além disso, a memória secundária 514 pode ser diretamente acoplada a outros componentes do aparelho 500 ou pode ser acessada através de uma rede e pode incluir uma única unidade integrada, como um cartão de memória, ou uma pluralidade de unidades, como uma pluralidade de cartões de memória. Portanto, o aparelho 500 pode ser implementado em uma pluralidade de configurações.
[00145] Conforme descrito acima neste pedido, além de um componente de luma (Y), um vídeo colorido inclui ainda um componente de croma (U, V). Portanto, além do componente de luma, o componente de croma também precisa ser codificado. De acordo com diferentes métodos para amostrar um componente de luma e um componente de croma em um vídeo colorido, geralmente existem YUV4: 4: 4, YUV4: 2: 2 e YUV4: 2: 0. Como mostrado na Figura 7, uma cruz representa uma amostra de componente de luma, e um círculo representa uma amostra de componente de croma.
[00146] Formato 4: 4: 4: Um componente de croma não tem amostragem reduzida.
[00147] Formato 4: 2: 2: Para um componente de croma em relação a um componente de luma, a redução de amostragem horizontal 2: 1 é realizada, e nenhuma redução de amostragem vertical é realizada. Para cada duas amostras U ou amostras V, cada linha inclui quatro amostras Y.
[00148] Formato 4: 2: 0: Para um componente de croma em relação a um componente de luma, a redução de amostragem horizontal 2: 1 é realizada e a redução de amostragem vertical 2: 1 é realizada.
[00149] YUV4: 2: 0 é o formato mais comum. Quando uma imagem de vídeo está em um formato de amostragem YUV4: 2: 0, se um componente de luma de um bloco de imagem é um bloco de imagem 2Mx2N, um componente de croma do bloco de imagem é um bloco de imagem MxN. 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 YUV4: 2: 0 como exemplo, mas também é aplicável a outro método para amostrar um componente de luma e um componente de croma.
[00150] Neste pedido, uma amostra em uma imagem (picture) de croma é brevemente referida como uma amostra de croma (chroma sample) ou um ponto de croma, e uma amostra em uma imagem (picture) de luma é brevemente referida como uma amostra de luma (luma sample) ou um ponto de luma.
[00151] Semelhante a um componente de luma, na intrapredição de croma, uma amostra de fronteira de um bloco reconstruído vizinho em torno de um bloco de croma atual também é usada como uma amostra de referência do bloco atual, e a amostra de referência é mapeada para uma amostra no bloco de croma atual de acordo com um modo de predição específico, para servir como um preditor da amostra 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 do que uma quantidade de modos de intrapredição para o componente de luma.
[00152] Um modo de predição de componente cruzado também é referido como um modo de intrapredição de componente cruzado ou um modo de predição de CCLM. O modo de predição de CCLM também pode ser brevemente referido como um modo de modelo linear. Um modo de LM (brevemente referido como um modelo linear ou um modo linear) é um método de intrapredição de croma em que uma correlação de textura entre luminância e crominância é usada. No LM, um preditor de um bloco de croma atual é derivado usando um componente de luma reconstruído de acordo com um modelo linear e pode ser representado usando a seguinte fórmula: predC  i, j     reci L  i, j    (1)
[00153] Aqui,  e  são coeficientes de modelo linear, onde  é um coeficiente de escalamento, e  é um fator de deslocamento, predC  i, j  é um preditor de uma amostra de croma em uma localização (i, j), e reci L  i, j  é um valor de amostra reconstruído de luma na localização (i, j) depois que um bloco reconstruído de luma correspondente ao bloco de croma atual (brevemente referido como um bloco de luma correspondente abaixo) tem amostragem reduzida para uma resolução de componente de croma. Para um vídeo no formato YUV4: 2: 0, a resolução de um componente de luma é quatro vezes a resolução de um componente de croma (a largura e a altura do componente de luma são duas vezes maiores do que o 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 amostragem reduzida para uma resolução de croma de acordo com um método de redução de amostragem igual ao do componente de croma.
[00154] Os coeficientes de modelo linear  e  não precisam ser codificados para transmissão, mas são derivados usando amostras de borda de um bloco reconstruído vizinho do bloco de croma atual e amostras de luma correspondentes às amostras de borda. A Figura 8 mostra uma modalidade de um modo de predição de componente cruzado. Na Figura 8, recL é um bloco de luma reconstruído (um bloco de croma atual corresponde a um bloco reconstruído de um bloco de luma e amostras de referência vizinhas), recL’ é um bloco de luma reduzido e recC' é amostras de referência reconstruídas vizinhas do bloco de croma atual. Um tamanho do bloco de croma atual é WxH, e usando amostras reconstruídas vizinhas superiores e amostras reconstruídas vizinhas à esquerda do bloco de croma atual como amostras de referência, um tamanho do bloco de luma correspondente é 2Wx2H. O bloco de luma e as amostras de referência do bloco de luma são amostrados para uma resolução de croma, para obter um bloco de amostra mostrado na Figura 8 (b). Amostras de referência vizinhas na Figura 8 (b) e Figura 8 (c) têm uma correspondência de um para um.
[00155] Para facilidade de descrição, neste pedido, uma amostra vizinha de topo e uma amostra vizinha à esquerda que são usadas para calcular um coeficiente de modelo linear são referidas como amostras vizinhas, uma amostra no topo é uma amostra vizinha de topo e uma amostra à esquerda é uma amostra vizinha à esquerda. As amostras vizinhas a um bloco de croma são referidas como amostras vizinhas (que incluem uma amostra vizinha de topo e uma amostra vizinha à esquerda), e as amostras vizinhas a um bloco de luma são referidas como amostras vizinhas (que incluem uma amostra vizinha de topo e uma amostra vizinha à esquerda). As amostras de croma estão em uma correspondência de um para um com as amostras de luma, e os valores das amostras formam um par de valores.
[00156] Nas modalidades deste pedido, as amostras de luma geralmente precisam ser obtidas por meio de redução de amostragem (porque uma resolução de um componente de croma é diferente daquela de um componente de luma) e são denotadas como amostras de Luma. As amostras de croma (chroma sample) são geralmente uma linha ou duas linhas de amostras vizinhas de topo de um bloco de croma atual e uma coluna ou duas colunas de amostras vizinhas à esquerda do bloco de croma atual. A Figura 9 é um diagrama esquemático do uso de uma linha e uma coluna, e a Figura 10 é um diagrama esquemático do uso de duas linhas e duas colunas.
[00157] No modo de LM, uma correlação entre um componente de luma e um componente de croma pode ser usada de forma eficaz. Comparado com um modo de predição direcional, o modo de LM é mais flexível e, portanto, fornece um sinal de predição mais preciso para um componente de croma.
[00158] Além disso, há também um modo de modelo linear de múltiplos modelos (Multiple model linear model, MMLM para abreviar) e há uma pluralidade de peças de  e  . Em um exemplo de dois modelos lineares, existem dois grupos de coeficientes de modelo linear: 1 e 1 , e 2 e 2 .
[00159] Este pedido fornece um método de predição de bloco de croma. 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. Nesta modalidade deste pedido, um lado de decodificador é usado como um exemplo para a descrição da solução e o conteúdo pode ser o seguinte:
Passo 1101: Obter valores de croma de amostras de croma em localizações predefinidas de amostras vizinhas de um bloco de croma.
[00160] O bloco de croma é um bloco de croma no qual a intrapredição está atualmente a ser realizada. Uma quantidade de amostras de croma nas localizações predefinidas (que podem ser rapidamente referidas como uma quantidade predefinida) pode ser predefinida. Por exemplo, a quantidade predefinida é 2, 4, 6 ou 8. As amostras vizinhas do bloco de croma são amostras reconstruídas vizinhas ao bloco de croma, referindo-se à Figura 9 e Figura 10.
[00161] Em uma implementação específica, quando intrapredição precisa ser realizada em um bloco de croma atual (que pode ser brevemente referido como o bloco de croma subsequentemente), os valores de croma das amostras de croma nas localizações predefinidas podem ser obtidos a partir das amostras vizinhas do bloco de croma, e podem ser representados como um conjunto  , onde  = C0 , C1,..., CM 1 , e M representa uma quantidade predefinida, ou seja, uma quantidade de valores de croma obtidos.
[00162] Opcionalmente, quando há apenas um modo linear (que também pode ser referido como um modo de intrapredição linear), em um sistema de coordenadas mostrado na Figura 12, as localizações predefinidas são geralmente (0, –1) (X – 1, –1), (–1, 0) e (–1, Y – 1), e os valores de croma das amostras de croma nas localizações predefinidas podem ser obtidas a partir das amostras vizinhas do bloco de croma.
[00163] Opcionalmente, o lado de decodificador pode determinar, com base na informação de indicação em um fluxo de bits, um modo de intrapredição correspondente ao bloco de croma, e determinar as localizações predefinidas com base no modo de intrapredição. O processamento correspondente pode incluir: obter informação de indicação, determinar, com base na informação de indicação, um modo de intrapredição correspondente ao bloco de croma, e determinar as localizações predefinidas com base no modo de intrapredição correspondente ao bloco de croma.
[00164] O modo de intrapredição correspondente ao bloco de croma pode incluir pelo menos um de um LM, um LMA e um LML. A informação de indicação é usada para indicar o modo de intrapredição correspondente ao bloco de croma.
[00165] Em uma implementação específica, ao realizar a codificação, um lado de codificador codifica o modo de intrapredição correspondente ao bloco de croma e, em seguida, envia o modo de intrapredição para o lado de decodificador (este processo é descrito abaixo).
[00166] O lado de decodificador pode obter a informação de indicação a partir do fluxo de bits recebido, e determinar, com base na informação de indicação, o modo de intrapredição correspondente ao bloco de croma. Em seguida, o lado de decodificador determina as localizações predefinidas com base no modo de intrapredição correspondente ao bloco de croma.
[00167] Opcionalmente, a informação de indicação pode ser definida em uma tabela de sintaxe, conforme mostrado na Tabela 1. Tabela 1 coding_unit (x 0, y 0, cbWidth, cbHeight, Descritor treeType) { … if (CuPredMode [x0] [y0] == MODE_INTRA) {/ * MODE_INTRA * / … intra_chroma_pred_mode [x 0] [y0] … } else {/ * MODE_INTER * / … } … }
[00168] Na Tabela 1, o elemento de sintaxe CuPredMode [x0] [y0] na tabela de sintaxe é usado para indicar se um modo de predição para o bloco de croma atual é um modo de intrapredição ou um modo de interpredição. Por exemplo, quando CuPredMode [x0] [y0] é MODE_INTRA, isso indica que um modo de intrapredição é usado para o bloco de croma atual, e quando CuPredMode [x0] [y0] é MODE_INTER, isso indica que um modo de interpredição é usado para o bloco de croma atual. Aqui, x0 e y0 representam as coordenadas do bloco de croma atual em uma imagem de vídeo.
[00169] O elemento de sintaxe intra_chroma_pred_mode [x0] [y0] é usado para indicar informação de modo de intrapredição (isto é, a informação de indicação anterior) do bloco de croma atual. Por exemplo, quando intra_chroma_pred_mode [x0] [y0] = 0, isso indica que um modo de LM0 é usado para o bloco atual, quando intra_chroma_pred_mode [x0] [y0] = 1, isso indica que um modo de LM1 é usado para o bloco de croma atual, quando intra_chroma_pred_mode [x0] [y0] = 2, isso indica que um modo de LM2 é usado para o bloco de croma atual, e quando intra_chroma_pred_mode [x0] [y0] = N – 1, isso indica que um modo de LM (N – 1) é usado para o bloco de croma atual. Aqui, N representa N diferentes LMs que podem ser selecionados pelo lado de codificador para o bloco de croma atual, e LM0, LM1,... e LM (N – 1) representam diferentes modos de intrapredição.
[00170] Opcionalmente, quando há uma pluralidade de modos lineares, existem diferentes localizações predefinidas para diferentes modos lineares e o processamento correspondente no passo 1101 pode incluir: obter os valores de croma das amostras de croma nas localizações predefinidas das amostras vizinhas do bloco de croma com base em uma correspondência predefinida entre um modo de intrapredição e uma localização predefinida e o modo de intrapredição correspondente ao bloco de croma.
[00171] Em uma implementação específica, ao realizar a decodificação, o lado de decodificador pode determinar o modo de intrapredição correspondente ao bloco de croma, então obter a correspondência predefinida entre um modo de intrapredição e uma localização predefinida, e determinar, a partir da correspondência, as localizações predefinidas correspondentes ao modo de intrapredição para o bloco de croma. Em seguida, o lado de decodificador obtém os valores de croma das amostras de croma nas localizações predefinidas das amostras vizinhas do bloco de croma.
[00172] Deve ser notado que, na correspondência anterior, as localizações predefinidas gravadas podem ser coordenadas de localização das localizações predefinidas.
[00173] Opcionalmente, para descrever melhor as localizações predefinidas, como mostrado na Figura 12, um sistema de coordenadas de plano retangular é correspondentemente estabelecido para o bloco de croma nesta modalidade deste pedido. A primeira amostra de croma em um canto superior esquerdo do bloco de croma é usada como uma origem de coordenada, uma direção horizontal para a direita é uma direção positiva de um eixo x, e uma direção vertical para o fundo é uma direção positiva de um eixo y. Desta forma, as coordenadas de localização das amostras vizinhas de topo do bloco de croma são (0, –1), (1, –1),..., e (X – 1, –1), e as coordenadas de localização das amostras vizinhas à esquerda do bloco de croma são (–1, 0), (–1, 1),... e (– 1, Y – 1), onde X representa uma largura do bloco de croma (ou seja, uma quantidade de amostras na direção de largura do bloco de croma), e Y representa a altura do bloco de croma (ou seja, uma quantidade de amostras na direção de altura do bloco de croma).
[00174] Se o modo de intrapredição for LM0, na correspondência, as coordenadas de localização das localizações predefinidas podem ser (0, -1), (X-1, -1), (- 1, 0) e (- 1, Y – 1).
[00175] Se o modo de intrapredição for LM1, na correspondência, as coordenadas de localização das localizações predefinidas podem ser (0, –1), (X / 4, -1), (X – 1 – X / 4, - 1) e (X – 1, –1).
[00176] Se o modo de intrapredição for LM2, na correspondência, as coordenadas de localização das localizações predefinidas podem ser (–1, 0), (–1, Y / 4), (– 1, Y – 1 – Y / 4), e (–1, Y – 1).
[00177] Se o modo de intrapredição for LM3, na correspondência, as coordenadas de localização das localizações predefinidas podem ser (X – 2, –1), (X – 1, – 1), (–1, Y – 2), e (–1, Y – 1).
[00178] Se o modo de intrapredição for LM (N – 1), na correspondência, as coordenadas de localização das localizações predefinidas podem ser (0, -1), (1, -1), (X – 2, -1) e (X – 1, –1).
[00179] Pode ser aprendido que, quando há uma pluralidade de modos lineares, diferentes modos lineares podem corresponder a diferentes localizações predefinidas.
[00180] Além disso, quando o modo linear é um LM, um LMA, e um LML, as coordenadas de localização das localizações predefinidas são ainda listadas separadamente, que podem ser as seguintes: se o modo de intrapredição for um LM, na correspondência, as coordenadas de localização das localizações predefinidas podem ser (0, -1), (X-1, -1), (-1, 0) e (–1, Y – 1), como mostrado por um círculo com uma linha oblíqua sombreada na Figura 13; se o modo de intrapredição for um LMA, na correspondência, as coordenadas de localização das localizações predefinidas podem ser (0, –1), (X / 4, -1), (X – 1 – X / 4, –1), e (X – 1, –1), como mostrado por círculos preenchidos com barras na Figura 14 (a), ou (0, –1), (X / 4, –1), (3 * X / 4, –1) e (X – 1, –1), conforme mostrado por círculos preenchidos com barras na Figura 14 (b);
se o modo de intrapredição for um LML, na correspondência, as coordenadas de localização das localizações predefinidas podem ser (–1, 0), (–1, Y / 4), (– 1, Y – 1 – Y / 4), e (–1, Y – 1), como mostrado por círculos preenchidos com barras na Figura 15 (a), ou (–1, 0), (–1, Y / 4), (–1, 3 * Y / 4) e (–1, Y – 1), conforme mostrado por círculos preenchidos com barras na Figura 15 (b).
[00181] Deve ser notado que as coordenadas de localização das localizações predefinidas são apenas um exemplo. Isso não é limitado nesta modalidade deste pedido.
[00182] Além disso, quando o modo de intrapredição é um LM, a quantidade predefinida pode, alternativamente, ser 2, e as coordenadas de localização das localizações predefinidas podem ser (X – 1, –1) e (–1, Y – 1), como mostrado por círculos preenchidos com barras na Figura 16 (a), ou podem ser (X / 2, -1) e (-1, Y / 2), como mostrado por círculos preenchidos com barras na Figura 16 (b), ou podem ser (X / 2, -1) e (-1, Y-1), como mostrado por círculos preenchidos com barras na Figura 16 (c), ou podem ser (X – 1, –1) e (–1, Y / 2), como mostrado por círculos preenchidos com barras na Figura 16 (d). Este é apenas um exemplo e não está limitado a esta modalidade deste pedido.
[00183] Deve ser notado que X e Y são geralmente maiores ou iguais a 4. X e Y na Figura 13 e Figura 16 (a) à Figura 16 (d) são 8 e 8, respectivamente, X na Figura 14 (a) é 8, X na Figura 14 (b) é 16, Y na Figura 15 (a) é 8 e Y na Figura 15 (b) é 16. Os valores anteriores são meramente uma possível implementação. Isso não é limitado nesta modalidade deste pedido. Além disso, na Figura 12 à Figura 16 (d), uma caixa representa o bloco de croma.
[00184] Passo 1102: Obter, com base nas amostras vizinhas de um bloco de luma correspondente ao bloco de croma, valores de luma de amostras de luma correspondentes às amostras de croma nas localizações predefinidas.
[00185] Em uma implementação específica, após os valores de croma serem obtidos, o bloco de luma correspondente ao bloco de croma pode ser determinado e, em seguida, os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas podem ser obtidos a partir das amostras vizinhas do bloco de luma, e podem ser representadas como um conjunto  , onde  = L0 , L1 ,..., LM 1 , e M representa uma quantidade predefinida, ou seja, uma quantidade de valores de luma obtidos.
[00186] Opcionalmente, para o passo 1102, os valores de luma podem ser selecionados de uma pluralidade de maneiras. O seguinte fornece duas maneiras de processamento viáveis: Maneira 1: Determinar, a partir das amostras vizinhas do bloco de luma, que as coordenadas de localização de uma amostra de luma correspondente a uma amostra de croma em uma i-ésima localização predefinida nas localizações predefinidas são (2 * Xi, 2 * Yi), onde as coordenadas de localização da amostra de croma na i-ésima localização predefinida são (Xi, Yi); e obter, a partir das amostras vizinhas do bloco de luma correspondente ao bloco de croma com base nas coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas, os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas;
a i-ésima localização predefinida é qualquer uma das localizações predefinidas; em uma implementação específica, quando o bloco de croma é decodificado, as coordenadas de localização da amostra de croma na i-ésima localização predefinida nas localizações predefinidas são (Xi, Yi) (Xi é uma coordenada horizontal na i-ésima localização predefinida no sistema de coordenadas mostrado na Figura 12, e Yi é uma coordenada vertical na i- ésima localização predefinida no sistema de coordenadas mostrado na Figura 12), e pode ser determinado, a partir das amostras vizinhas do bloco de luma, que as coordenadas de localização da amostra de luma correspondente à amostra de croma na i-ésima localização predefinida são (2 * Xi, 2 * Yi). Desta forma, as coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas podem ser obtidas.
Então, os valores de luma podem ser obtidos a partir das amostras de luma correspondentes com base nas coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas; Maneira 2: Determinar, a partir das amostras vizinhas do bloco de luma com base nas coordenadas de localização de uma amostra de croma em uma j-ésima localização predefinida nas localizações predefinidas, as coordenadas de localização de uma pluralidade de amostras correspondentes à j-ésima localização predefinida; determinar, com base nas coordenadas de localização da pluralidade de amostras, as coordenadas de localização de uma amostra de luma correspondente à amostra de croma na j-ésima localização predefinida; e obter, a partir das amostras vizinhas do bloco de luma correspondente ao bloco de croma com base nas coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas, os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas; a j-ésima localização predefinida é qualquer uma das localizações predefinidas; em uma implementação específica, quando o bloco de croma é decodificado, as coordenadas de localização da amostra de croma na j-ésima localização predefinida nas localizações predefinidas são (Xj, Yj) (Xj é uma coordenada horizontal na j-ésima localização predefinida no sistema de coordenadas mostrado na Figura 12 e Yj é uma coordenada vertical na j- ésima localização predefinida no sistema de coordenadas mostrado na Figura 12). Para a amostra de croma na j-ésima localização predefinida, a pluralidade de localizações de amostra das amostras vizinhas do bloco de luma correspondente a (Xj, Yj) pode ser determinada com base nas coordenadas de localização da amostra de croma na j-ésima localização predefinida, e então as coordenadas de localização da amostra de luma correspondente à amostra de croma na j-ésima localização predefinida podem ser obtidas com base nas coordenadas de localização da pluralidade de localizações de amostra; por exemplo, um método de ponderação pode ser usado.
As coordenadas de localização da pluralidade de localizações de amostra podem ser (2 * Xj, 2 * Yj), (2 * Xj, 2 * Yj + 1), (2 * Xj + 1, 2 * Yj), (2 * Xj + 1, 2 * Yj + 1), (2 * Xj + 2, 2 * Yj) e (2 * Xj + 2, 2 * Yj + 1), e todas as localizações de amostra correspondem a valores ponderados, que são 2 / 8, 1/8, 1/8, 2/8, 1/8 e 1/8 respectivamente. Após a ponderação ser realizada, as coordenadas de localização (2 * Xj, 2 * Yj + 0,5) da amostra de luma correspondente à amostra de croma na j-ésima localização predefinida podem ser obtidas. Além disso, um método de ponderação pode não ser usado. Isso não é limitado nesta modalidade deste pedido. Desta forma, as coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas podem ser obtidas. Em seguida, os valores de luma podem ser obtidos a partir das amostras de luma correspondentes com base nas coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas.
[00187] Passo 1103: Classificar os valores de luma obtidos em um primeiro conjunto de luma e um segundo conjunto de luma.
[00188] Em uma implementação específica, após os valores de luma serem obtidos, os valores de luma obtidos podem ser classificados no primeiro conjunto de luma e no segundo conjunto de luma.
[00189] Opcionalmente, os conjuntos de luma podem ser obtidos de uma pluralidade de maneiras. Esta modalidade deste pedido fornece três maneiras viáveis: Maneira 1: Determinar um valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas; e agrupar valores de luma que estão nos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas e que são menores ou iguais ao valor médio dos valores de luma no primeiro conjunto de luma, e agrupar valores de luma que são nos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas e que são maiores do que o valor médio dos valores de luma no segundo conjunto de luma; em uma implementação específica, o valor médio dos valores de luma obtidos no passo 1102 pode ser determinado. Em seguida, os valores de luma que estão nos valores de luma obtidos no passo 1102 e que são menores ou iguais ao valor médio dos valores de luma são determinados e agrupados no primeiro conjunto de luma. Além disso, os valores de luma que estão nos valores de luma obtidos no passo 1102 e que são maiores do que o valor médio dos valores de luma podem ser determinados e agrupados no segundo conjunto de luma. Dessa forma, os valores de luma no primeiro conjunto de luma são menores do que os valores de luma no segundo conjunto de luma; as seguintes fórmulas são usadas para representação: L0  L1  ...  L M 1 Lmean = o valor médio dos valores de luma é M ; o primeiro conjunto de luma obtido é  L =  Li 0 , Li1 ,..., Lij , ..., LiS  , onde Lij≤Lmean ; e o segundo conjunto de luma obtido é  R =  L j 0 , L j1 ,..., L ji ,..., L jT  , onde Lji>Lmean .
Maneira 2: Ordenar os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas em ordem crescente, para obter uma primeira fila de valores de luma; e se uma quantidade de amostras de luma no primeiro conjunto de valores de luma for um número par, agrupar valores de luma da primeira metade na primeira fila de valores de luma no primeiro conjunto de luma, e agrupar valores de luma da segunda metade na fila de valores de luma para o segundo conjunto de luma; em uma implementação específica, os valores de luma obtidos no passo 1102 podem ser ordenados em ordem crescente, para obter a primeira fila de valores de luma.
Se a quantidade de amostras de luma na primeira fila de valores de luma for um número par, os valores de luma da primeira metade na fila de valores de luma podem ser determinados e agrupados no primeiro conjunto de luma; além disso, os valores de luma da segunda metade na primeira fila de valores de luma podem ser determinados e agrupados no segundo conjunto de luma; por exemplo, se quatro valores de luma são obtidos no passo 1102, que são L1, L2, L3 e L4 em sequência, e L4 < L2 < L1 < L3, a primeira fila de valores de luma é L4, L2, L1, e L3. Nesse caso, o primeiro conjunto de luma é {L4, L2} e o segundo conjunto de luma é {L1, L3}. Maneira 3: Ordenar os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas em ordem decrescente, para obter uma segunda fila de valores de luma; e se uma quantidade de amostras de luma no segundo conjunto de valores de luma for um número par, classificar os valores de luma da segunda metade na fila de valores de luma no primeiro conjunto de luma, e classificar os valores de luma da primeira parte na fila de valores de luma para o segundo conjunto de luma; em uma implementação específica, os valores de luma obtidos no passo 1102 podem ser ordenados em ordem decrescente, para obter a segunda fila de valores de luma.
Se a quantidade de amostras de luma na segunda fila de valores de luma for um número par, os valores de luma da segunda metade na fila de valores de luma podem ser determinados e agrupados no primeiro conjunto de luma; além disso, os valores de luma da primeira metade na segunda fila de valores de luma podem ser determinados e agrupados no segundo conjunto de luma; por exemplo, se quatro valores de luma são obtidos no passo 1102, que são L1, L2, L3 e L4 em sequência, e L3 > L1 > L2 > L4, a segunda fila de valores de luma é L3, L1, L2, e L4. Nesse caso, o primeiro conjunto de luma é {L4, L2} e o segundo conjunto de luma é {L1, L3}; além disso, quando a quantidade de amostras de luma na primeira fila de valores de luma na Maneira 2 é um número ímpar, se a primeira fila de valores de luma incluir N valores de luma, os primeiros (N – 1) / 2 valores de luma podem ser agrupados no primeiro conjunto de luma e os últimos (N + 1) / 2 valores de luma podem ser agrupados no segundo conjunto de luma, ou os primeiros (N + 1) / 2 valores de luma podem ser agrupados no primeiro conjunto de luma, e os últimos (N – 1) / 2 valores de luma podem ser agrupados no segundo conjunto de luma.
Da mesma forma, quando a quantidade de amostras de luma na segunda fila de valores de luma na Maneira 3 é um número ímpar, se a segunda fila de valores de luma inclui N valores de luma, os primeiros (N – 1) / 2 valores de luma podem ser agrupados no segundo conjunto de luma e os últimos (N + 1) / 2 valores de luma podem ser agrupados no primeiro conjunto de luma ou os primeiros (N + 1) / 2 valores de luma podem ser agrupados no segundo conjunto de luma e os últimos (N – 1) / 2 valores de luma podem ser agrupados no primeiro conjunto de luma.
[00190] Passo 1104: Agrupar valores de croma de amostras de croma correspondentes a amostras de luma associadas a valores de luma no primeiro conjunto de luma em um primeiro conjunto de croma, e agrupar valores de croma de amostras de croma correspondentes a amostras de luma associadas a valores de luma no segundo conjunto de luma em um segundo conjunto de croma.
[00191] Em uma implementação específica, após o primeiro conjunto de luma e o segundo conjunto de luma serem obtidos, os valores de croma correspondentes a todos os valores de luma no primeiro conjunto de luma podem ser classificados no primeiro conjunto de croma, e os valores de croma correspondentes a todos os valores de luma no segundo conjunto de luma podem ser classificados no segundo conjunto de croma. As seguintes fórmulas podem ser usadas para representação: L = Ci 0 , Ci1 ,..., Cij ,..., CiS  o primeiro conjunto de croma é ; e R = C j 0 , C j1 ,..., C ji ,..., C jT  o segundo conjunto de croma obtido é .
[00192] Deve ser notado que, no passo 1101, as amostras de luma correspondentes às amostras de croma são usadas para determinar os valores de luma. Os valores de croma correspondentes aos valores de luma aqui são os valores de croma das amostras de croma correspondentes às amostras de luma associadas aos valores de luma.
[00193] Passo 1105: Determinar, com base em um valor médio dos valores de luma no primeiro conjunto de luma, um valor médio dos valores de luma no segundo conjunto de luma, um valor médio dos valores de croma no primeiro conjunto de croma, e um valor médio dos valores de croma no segundo conjunto de croma, um coeficiente de escalamento em um modelo linear correspondente ao bloco de croma.
[00194] Em uma implementação específica, após o primeiro conjunto de luma, o segundo conjunto de luma, o primeiro conjunto de croma e o segundo conjunto de croma serem determinados, o valor médio dos valores de luma no primeiro conjunto de luma e o valor médio dos valores de luma no segundo conjunto de luma podem ser determinados, e o valor médio dos valores de croma no primeiro conjunto de croma e o valor médio dos valores de croma no segundo conjunto de croma podem ser determinados. Correspondendo à Maneira 1, as seguintes fórmulas são usadas para representação: o valor médio dos valores de luma no primeiro conjunto  S 1    Lij    ij 0 de luma é LLmean ;
S o valor médio dos valores de luma no segundo conjunto de  T 1    Lji    ji 0 luma é LRmean ;
T o valor médio dos valores de croma no primeiro conjunto  S 1    Cij    ij 0 de croma é CLmean ; e
S o valor médio dos valores de croma no segundo conjunto  T 1    C ji   ji0  de croma é CRmean  .
T
[00195] Então, o coeficiente de escalamento no modelo linear correspondente ao bloco de croma é determinado com base no valor médio dos valores de luma no primeiro conjunto de luma, o valor médio dos valores de luma no segundo conjunto de luma, o valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de croma no segundo conjunto de croma.
[00196] Opcionalmente, o coeficiente de escalamento pode ser determinado usando uma fórmula e o processamento correspondente pode ser o seguinte: CLmean  CRmean = LLmean  LRmean , onde α é o coeficiente de escalamento no modelo linear correspondente ao bloco de croma, CLmean é o valor médio dos valores de croma no primeiro conjunto de croma, CRmean é o valor médio dos valores de croma no segundo conjunto de croma, LLmean é o valor médio dos valores de luma no primeiro conjunto de luma, e LRmean é o valor médio dos valores de luma no segundo conjunto de luma.
[00197] Em uma implementação específica, uma fórmula de cálculo predefinida para o coeficiente de escalamento pode ser obtida, e então CLmean , CRmean , L Lm ean , e L R mean são substituídos na fórmula de cálculo para o coeficiente de CLmean  CRmean escalamento = , para obter o coeficiente de LLmean  LRmean escalamento no modelo linear correspondente ao bloco de croma.
[00198] Passo 1106: Determinar, com base no coeficiente de escalamento, um fator de deslocamento no modelo linear correspondente ao bloco de croma.
[00199] Em uma implementação específica, após o coeficiente de escalamento ser determinado, o fator de deslocamento no modelo linear correspondente ao bloco de croma pode ser determinado com base no coeficiente de escalamento. O fator de deslocamento pode ser determinado de várias maneiras.
Esta modalidade deste pedido fornece duas maneiras viáveis: Maneira 1: Determinar, com base no coeficiente de escalamento, o valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de luma no primeiro conjunto de luma, o fator de deslocamento em um modelo linear correspondente ao bloco de croma; em uma implementação específica, o valor médio dos valores de croma no primeiro conjunto de croma pode ser  S 1    Cij    ij 0 CLmean determinado: S , e o valor médio dos valores de luma no primeiro conjunto de luma pode ser determinado:  S 1    Lij    ij 0 LLmean S ; então, o fator de deslocamento em um modelo linear correspondente ao bloco de croma é determinado com base no coeficiente de escalamento, o valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de luma no primeiro conjunto de luma; opcionalmente, o fator de deslocamento pode ser determinado usando a seguinte fórmula, e o processamento correspondente pode ser o seguinte:  =CLmean -  LLmean , onde α é o coeficiente de escalamento, β é o fator de deslocamento no modelo linear correspondente ao bloco de croma, CLmean é o valor médio dos valores de croma no primeiro conjunto de croma, e LLmean é o valor médio dos valores de luma no primeiro conjunto de luma; em uma implementação específica, uma fórmula de cálculo predefinida para o fator de deslocamento pode ser obtida e,
em seguida, o coeficiente de escalamento obtido no passo 1105, CLmean e LLmean são substituídos na fórmula de cálculo para o fator de deslocamento  =CLmean -  LLmean , para obter o fator de deslocamento no modelo linear correspondente ao bloco de croma; Maneira 2: Determinar, com base no coeficiente de escalamento, um valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma, o fator de deslocamento no modelo linear correspondente ao bloco de croma; em uma implementação específica, o valor médio dos valores de croma das amostras de croma nas localizações  M 1    Cm  Cmean   m  0  predefinidas pode ser determinado: M , e o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma pode ser determinado:  M 1    Lm  Lmean   m0  M ;
então, o fator de deslocamento correspondente ao bloco de croma é determinado usando o coeficiente de escalamento, Cmean , e Lmean ; opcionalmente, o fator de deslocamento pode ser determinado usando a seguinte fórmula, e o processamento correspondente pode ser o seguinte:  =Cmean -  Lmean , onde α é o coeficiente de escalamento, β é o fator de deslocamento no modelo linear correspondente ao bloco de croma, Cmean é o valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e Lmean é o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas; em uma implementação específica, uma fórmula de cálculo predefinida para o fator de deslocamento pode ser obtida e, em seguida, o coeficiente de escalamento obtido no passo 1105, Cmean , e Lmean são substituídos na fórmula de cálculo para o fator de deslocamento, para obter o fator de deslocamento no modelo linear correspondente ao bloco de croma.
[00200] Passo 1107: Determinar a informação de predição do bloco de croma com base no coeficiente de escalamento, o fator de deslocamento, e a informações de reconstrução de luma correspondentes ao bloco de croma.
[00201] A informações de reconstrução de luma correspondente ao bloco de croma inclui informação de redução de amostragem de um bloco reconstruído de luma correspondente ao bloco de croma.
[00202] Em uma implementação específica, após o coeficiente de escalamento e o fator de deslocamento correspondente ao bloco de croma serem obtidos, a informações de reconstrução de luma correspondente ao bloco de croma, o coeficiente de escalamento e o fator de deslocamento podem ser usados para obter a informação de predição do bloco de croma.
[00203] Opcionalmente, uma fórmula predC  i, j     reci L  i, j    pode ser usada para obter a informação de predição do bloco de croma, onde α é o coeficiente de escalamento, β é o fator de deslocamento, predC  i, j  é um preditor de uma amostra de croma em uma localização (i, j), e reci L  i, j  é um valor de amostra reconstruído de luma na localização (i, j) do bloco de luma correspondente ao bloco de croma atual.
[00204] Se esta modalidade deste pedido for aplicada ao lado de codificador, a diferença reside apenas na maneira de determinar um modo de intrapredição. No lado de codificador, se for determinado que um método de intrapredição é usado para um bloco de croma, o bloco de croma é codificado usando cada modo de intrapredição. Em seguida, um critério de otimização de taxa de distorção (Rate Distortion Optimization, RDO) é usado para determinar um modo de intrapredição com um melhor efeito de codificação, escrever o modo de intrapredição na tabela de sintaxe anterior, e adicionar o modo de intrapredição a um fluxo de bits. Desta forma, o lado de decodificador pode determinar diretamente, a partir do fluxo de bits, um modo de intrapredição que deve ser usado para decodificação.
[00205] Opcionalmente, uma maneira de determinar o modo de intrapredição usando o critério de RDO pode ser a seguinte: a informação de predição do bloco de croma é determinada em uma maneira do passo 1101 ao passo 1107, a informação de predição é subtraída da informação original do bloco de croma para obter a informação residual, o processamento de transformada é realizado na informação residual para obter um coeficiente de transformada, o processamento de quantização é realizado no coeficiente de transformada para obter um coeficiente de quantização, e o processamento de codificação de entropia é realizado no coeficiente de quantização para obter um fluxo de bits. Em seguida, o processamento de codificação de entropia inversa, o processamento de quantização inversa, e o processamento de transformada inversa são realizados sequencialmente no fluxo de bits para realizar a intrapredição, para obter a informação reconstruída, a informação reconstruída é comparada com a informação original, e um modo de intrapredição no qual uma diferença entre a informação reconstruída e a informação original é a menor é determinado como um modo de intrapredição a-ser-usado finalmente, isto é, um modo de intrapredição a ser escrito na tabela de sintaxe anterior.
[00206] Deve ser notado que o lado de codificador pode ser um lado de decodificador usando H.263, H.264, MPEG-2, MPEG-4, VP8 ou VP9 e, correspondentemente, o lado de decodificador pode ser um lado de decodificador usando H.263, H.264, MPEG-2, MPEG-4, VP8 ou VP9.
[00207] Deve ser notado ainda que, esta modalidade deste pedido é descrita usando apenas uma linha de amostras vizinhas como exemplo. Esta modalidade deste pedido também pode ser aplicada a um cenário de duas filas de amostras vizinhas mostradas na Figura 10, e uma maneira de processamento é a mesma que no caso de uma linha de amostras, mas as coordenadas de localização de uma quantidade predefinida de pontos de localização são diferentes.
[00208] Nesta modalidade deste pedido, durante a codificação ou decodificação, os valores de croma das amostras de croma nas localizações predefinidas podem ser obtidos a partir das amostras vizinhas do bloco de croma. Em seguida, os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas são obtidos das amostras vizinhas do bloco de luma correspondente ao bloco de croma, os valores de luma obtidos são classificados no primeiro conjunto de luma e no segundo conjunto de luma, e os valores de croma são classificados correspondentemente no primeiro conjunto de croma e no segundo conjunto de croma com base na classificação dos valores de luma.
Em seguida, o coeficiente de escalamento no modelo linear correspondente ao bloco de croma pode ser determinado com base no valor médio dos valores de luma no primeiro conjunto de luma, o valor médio dos valores de luma no segundo conjunto de luma, o valor médio do valores de croma no primeiro conjunto de croma, e o valor médio dos valores de croma no segundo conjunto de croma, e após o coeficiente de escalamento ser determinado, o fator de deslocamento no modelo linear correspondente ao bloco de croma pode ser determinado com base no coeficiente de escalamento.
Finalmente, a informação de predição do bloco de croma é determinada com base no coeficiente de escalamento, o fator de deslocamento e a informações de reconstrução de luma correspondentes ao bloco de croma.
Desta forma, durante a codificação ou decodificação, uma quantidade predefinida de valores de croma é selecionada e, em seguida, classificada em dois conjuntos de croma, e uma quantidade predefinida de valores de luma é selecionada e então classificada em dois conjuntos de luma.
Um coeficiente de escalamento em um modelo linear correspondente a um bloco de croma é determinado com base em um valor médio dos valores de luma em cada conjunto de luma e um valor médio dos valores de croma em cada conjunto de croma e, além disso, um fator de deslocamento é determinado.
Como uma quantidade menor de multiplicações está envolvida, um tempo de codificação e um tempo de decodificação podem ser reduzidos.
[00209] A Figura 17 é um diagrama estrutural 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 todo o aparelho usando software, hardware ou uma combinação dos mesmos. O aparelho fornecido nesta modalidade deste pedido pode implementar o procedimento na Figura 11 à Figura 16 (d) nas modalidades deste pedido. O aparelho inclui um módulo de obtenção 1710, um módulo de classificação 1720 e um módulo de determinação
1730.
[00210] O módulo de obtenção 1710 é configurado para: obter valores de croma de amostras de croma em localizações predefinidas de amostras vizinhas de um bloco de croma; e obter, com base nas amostras vizinhas de um bloco de luma correspondente ao bloco de croma, valores de luma de amostras de luma correspondentes às amostras de croma nas localizações predefinidas, e pode ser configurado especificamente para implementar a função de obtenção na Figura 11 e os passos implícitos incluídos na Figura 11.
[00211] O módulo de classificação 1720 é configurado para: classificar os valores de luma obtidos em um primeiro conjunto de luma e um segundo conjunto de luma; e agrupar valores de croma de amostras de croma correspondentes a amostras de luma associadas a valores de luma no primeiro conjunto de luma para um primeiro conjunto de croma, e agrupar valores de croma de amostras de croma correspondentes a amostras de luma associadas a valores de luma no segundo conjunto de luma em um segundo conjunto de croma, e pode ser configurado especificamente para implementar a função de classificação na Figura 11 e os passos implícitos incluídos na Figura 11.
[00212] O módulo de determinação 1730 é configurado para: determinar, com base em um valor médio dos valores de luma no primeiro conjunto de luma, um valor médio dos valores de luma no segundo conjunto de luma, um valor médio dos valores de croma no primeiro conjunto de croma, e um valor médio dos valores de croma no segundo conjunto de croma, um coeficiente de escalamento em um modelo linear correspondente ao bloco de croma; determinar, com base no coeficiente de escalamento, um fator de deslocamento no modelo linear correspondente ao bloco de croma; e determinar informação de predição do bloco de croma com base no coeficiente de escalamento, o fator de deslocamento, e informações de reconstrução de luma correspondentes ao bloco de croma, onde a informações de reconstrução de luma correspondentes ao bloco de croma inclui informação de redução de amostragem de um bloco reconstruído de luma correspondente ao bloco de croma, e pode ser especificamente configurado para implementar a função de determinação na Figura 11 e os passos implícitos incluídos na Figura 11.
[00213] Opcionalmente, o módulo de obtenção 1710 é ainda configurado para: obter informação de indicação, e determinar, com base na informação de indicação, um modo de intrapredição correspondente ao bloco de croma, em que o modo de intrapredição inclui pelo menos um de um modo linear LM, um modo linear acima LMA e um modo linear esquerdo LML; e determinar as localizações predefinidas com base no modo de intrapredição correspondente ao bloco de croma.
[00214] Opcionalmente, o módulo de obtenção 1710 é configurado para: obter os valores de croma das amostras de croma nas localizações predefinidas das amostras vizinhas do bloco de croma com base em uma correspondência predefinida entre um modo de intrapredição e uma localização predefinida e o modo de intrapredição correspondente ao bloco de croma.
[00215] Opcionalmente, as coordenadas de localização das amostras vizinhas de topo do bloco de croma são (0, -1), (1, -1),..., e (X-1, -1) e as coordenadas de localização das amostras vizinhas à esquerda do bloco de croma são (–1, 0), (–1, 1),... e (–1, Y – 1); e se o modo de intrapredição correspondente ao bloco de croma for um modo linear LM de componente cruzado, as coordenadas de localização das amostras de croma nas localizações predefinidas são (0, -1), (X -1, -1), (-1, 0) e (–1, Y – 1).
[00216] Opcionalmente, as coordenadas de localização das amostras vizinhas de topo do bloco de croma são (0, -1), (1, -1),... e (X -1, -1); e se o modo de intrapredição correspondente ao bloco de croma for um modo linear acima LMA de componente cruzado, as coordenadas de localização nas localizações predefinidas são (0, –1), (X / 4, –1), (X – 1 – X / 4, –1), e (X – 1, –1), ou (0, –1), (X / 4, –1), (3 * X / 4, –1) e (X – 1, -1).
[00217] Opcionalmente, as coordenadas de localização das amostras vizinhas à esquerda do bloco de croma são (–1, 0), (–1, 1),... e (–1, Y – 1); e se o modo de intrapredição correspondente ao bloco de croma for um modo linear esquerdo LML de componente cruzado, as coordenadas de localização nas localizações predefinidas são (–1, 0), (–1, Y / 4), (–1, Y– 1 – Y / 4), e (–1, Y – 1), ou (–1, 0), (–1, Y / 4), (–1, 3 * Y / 4), e (–1, Y – 1).
[00218] Opcionalmente, o módulo de obtenção 1710 é configurado para: determinar, a partir das amostras vizinhas do bloco de luma, que as coordenadas de localização de uma amostra de luma correspondente a uma amostra de croma em uma i-ésima localização predefinida nas localizações predefinidas são (2 * Xi, 2 * Yi), onde as coordenadas de localização da amostra de croma na i-ésima localização predefinida são (Xi, Yi); e obter, a partir das amostras vizinhas do bloco de luma correspondente ao bloco de croma com base nas coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas, os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas; ou determinar, a partir das amostras vizinhas do bloco de luma com base nas coordenadas de localização de uma amostra de croma em uma j-ésima localização predefinida nas localizações predefinidas, coordenadas de localização de uma pluralidade de amostras correspondentes à j-ésima localização predefinida; determinar, com base nas coordenadas de localização da pluralidade de amostras, as coordenadas de localização de uma amostra de luma correspondente à amostra de croma na j-ésima localização predefinida; e obter, a partir das amostras vizinhas do bloco de luma correspondente ao bloco de croma com base nas coordenadas de localização das amostras de luma correspondentes às amostras de croma nas localizações predefinidas, os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas.
[00219] Opcionalmente, o módulo de classificação 1720 é configurado para: determinar um valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas; e agrupar valores de luma que estão nos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas e que são menores ou iguais ao valor médio dos valores de luma para o primeiro conjunto de luma, e agrupar valores de luma que estão nos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas e que são maiores do que o valor médio dos valores de luma para o segundo conjunto de luma.
[00220] Opcionalmente, o módulo de classificação 1720 é configurado para: ordenar os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas em ordem crescente, para obter uma primeira fila de valores de luma; e se uma quantidade de amostras de luma na primeira fila de valores de luma for um número par, agrupar valores de luma da primeira metade na primeira fila de valores de luma para o primeiro conjunto de luma, e agrupar valores de luma da segunda metade na fila de valores de luma para o segundo conjunto de luma; ou ordenar os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas em ordem decrescente, para obter uma segunda fila de valores de luma; e se uma quantidade de amostras de luma na segunda fila de valores de luma for um número par, agrupar valores de luma da segunda metade na segunda fila de valores de luma para o primeiro conjunto de luma, e agrupar valores de luma da primeira metade na fila de valores de luma para o segundo conjunto de luma.
[00221] Opcionalmente, o módulo de determinação 1730 é configurado para: CLmean  CRmean = LLmean  LRmean , onde α é o coeficiente de escalamento no modelo linear correspondente ao bloco de croma, CLmean é o valor médio dos valores de croma no primeiro conjunto de croma, CRmean é o valor médio dos valores de croma no segundo conjunto de croma, LLmean é o valor médio dos valores de luma no primeiro conjunto de luma, e LRmean é o valor médio dos valores de luma no segundo conjunto de luma.
[00222] Opcionalmente, o módulo de determinação 1730 é configurado para: determinar, com base no coeficiente de escalamento, o valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de luma no primeiro conjunto de luma, o fator de deslocamento no modelo linear correspondente ao bloco de croma.
[00223] Opcionalmente, o módulo de determinação 1730 é configurado para:  =CLmean -  LLmean , onde α é o coeficiente de escalamento, β é o fator de deslocamento no modelo linear correspondente ao bloco de croma, CLmean é o valor médio dos valores de croma no primeiro conjunto de croma, e LLmean é o valor médio dos valores de luma no primeiro conjunto de luma.
[00224] Opcionalmente, o módulo de determinação 1730 é configurado para: determinar, com base no coeficiente de escalamento, um valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma, o fator de deslocamento no modelo linear correspondente ao bloco de croma.
[00225] Opcionalmente, o módulo de determinação 1730 é configurado para:  =Cmean -  Lmean , onde α é o coeficiente de escalamento, β é o fator de deslocamento no modelo linear correspondente ao bloco de croma, Cmean é o valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e Lmean é o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas.
[00226] Nas modalidades deste pedido, durante a codificação ou decodificação, os valores de croma das amostras de croma nas localizações predefinidas podem ser obtidos a partir das amostras vizinhas do bloco de croma. Em seguida, os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas são obtidos a partir das amostras vizinhas do bloco de luma correspondente ao bloco de croma, os valores de luma obtidos são classificados no primeiro conjunto de luma e no segundo conjunto de luma, e os valores de croma são classificados correspondentemente no primeiro conjunto de croma e no segundo conjunto de croma com base na classificação dos valores de luma. Em seguida, o coeficiente de escalamento no modelo linear correspondente ao bloco de croma pode ser determinado com base no valor médio dos valores de luma no primeiro conjunto de luma, o valor médio dos valores de luma no segundo conjunto de luma, o valor médio do valores de croma no primeiro conjunto de croma, e o valor médio dos valores de croma no segundo conjunto de croma, e após o coeficiente de escalamento ser determinado, o fator de deslocamento no modelo linear correspondente ao bloco de croma pode ser determinado com base no coeficiente de escalamento. Finalmente, a informação de predição do bloco de croma é determinada com base no coeficiente de escalamento, o fator de deslocamento e a informações de reconstrução de luma correspondentes ao bloco de croma. Desta forma, durante a codificação ou decodificação, uma quantidade predefinida de valores de croma é selecionada e, em seguida, classificada em dois conjuntos de croma, e uma quantidade predefinida de valores de luma é selecionada e então classificada em dois conjuntos de luma. Um coeficiente de escalamento em um modelo linear correspondente a um bloco de croma é determinado com base em um valor médio dos valores de luma em cada conjunto de luma e um valor médio dos valores de croma em cada conjunto de croma e, além disso, um fator de deslocamento é determinado. Como uma quantidade menor de multiplicações está envolvida, um tempo de codificação e um tempo de decodificação podem ser reduzidos.
[00227] Deve ser notado que, quando o aparelho de predição de bloco de croma fornecido na modalidade anterior determina informação de predição de bloco de croma, a divisão dos módulos de função anteriores é apenas usada como um exemplo para a descrição. Na aplicação real, as funções anteriores podem ser alocadas a diferentes módulos de função, conforme necessário. Em outras palavras, uma estrutura interna do aparelho é dividida em diferentes módulos de função 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.
[00228] Este pedido fornece ainda um meio de armazenamento legível por computador. O meio de armazenamento legível por computador armazena uma instrução, e quando o meio de armazenamento legível por computador é rodado em um dispositivo de computação, o dispositivo de computação é habilitado para realizar o método de predição de bloco de croma.
[00229] Este pedido fornece ainda um produto de programa de computador incluindo uma instrução. Quando o produto de programa de computador é rodado em um dispositivo de computação, o dispositivo de computação é habilitado para realizar o método de predição de bloco de croma.
[00230] 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 em uma forma de 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 e uma fita magnética), um meio ótico (por exemplo, um disco de vídeo digital (Digital Video Disk, DVD)), ou um meio semicondutor (por exemplo, uma unidade de estado sólido).
[00231] 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 (28)

REIVINDICAÇÕES EMENDADAS
1. Método de predição de bloco de croma, caracterizado pelo fato de que o método compreende: obter valores de croma de amostras de croma em localizações predefinidas de amostras vizinhas de um bloco de croma; obter, com base em amostras vizinhas de um bloco de luma correspondente ao bloco de croma, valores de luma de amostras de luma correspondentes às amostras de croma nas localizações predefinidas; obter, a partir dos valores de luma obtidos, um primeiro conjunto de luma e um segundo conjunto de luma; agrupar valores de croma de amostras de croma correspondentes a amostras de luma associadas a valores de luma no primeiro conjunto de luma em um primeiro conjunto de croma, e agrupar valores de croma de amostras de croma correspondentes a amostras de luma associadas a valores de luma no segundo conjunto de luma em um segundo conjunto de croma; determinar, com base em um valor médio dos valores de luma no primeiro conjunto de luma, um valor médio dos valores de luma no segundo conjunto de luma, um valor médio dos valores de croma no primeiro conjunto de croma, e um valor médio dos valores de croma no segundo conjunto de croma, um coeficiente de escalamento em um modelo linear correspondente ao bloco de croma; determinar, com base no coeficiente de escalamento, um fator de deslocamento no modelo linear correspondente ao bloco de croma; e determinar informações de predição do bloco de croma com base no coeficiente de escalamento, o fator de deslocamento, e informações de reconstrução de luma correspondentes ao bloco de croma, em que as informações de reconstrução de luma correspondentes ao bloco de croma compreendem informações de redução de amostragem de um bloco reconstruído de luma correspondente ao bloco de croma.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o método compreende ainda: obter informações de indicação, e determinar, com base nas informações de indicação, um modo de intrapredição correspondente ao bloco de croma, em que o modo de intrapredição compreende pelo menos um de um modo linear LM, um modo linear acima LMA e um modo linear esquerdo LML; e determinar as localizações predefinidas com base no modo de intrapredição correspondente ao bloco de croma.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a obtenção de valores de croma de amostras de croma em localizações predefinidas de amostras vizinhas de um bloco de croma compreende: obter os valores de croma das amostras de croma nas localizações predefinidas das amostras vizinhas do bloco de croma com base em uma correspondência predefinida entre um modo de intrapredição e uma localização predefinida e o modo de intrapredição correspondente ao bloco de croma.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que as coordenadas de localização das amostras vizinhas de topo do bloco de croma são (0, -1), (1, -1),... e (X - 1, –1), e coordenadas de localização das amostras vizinhas à esquerda do bloco de croma são (–1, 0), (–1, 1),..., e (–1, Y – 1), em que X representa uma largura do bloco de croma, e Y representa a altura do bloco de croma; e se o modo de intrapredição correspondente ao bloco de croma for um modo linear LM de componente cruzado, as coordenadas de localização das amostras de croma nas localizações predefinidas são (0, -1), (X - 1, -1), (-1, 0) e (–1, Y – 1).
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que as coordenadas de localização das amostras vizinhas de topo do bloco de croma são (0, -1), (1, -1),... e (X - 1, -1), em que X representa a largura do bloco de croma; e se o modo de intrapredição correspondente ao bloco de croma for um modo linear acima LMA de componente cruzado, as coordenadas de localização nas localizações predefinidas são (0, –1), (X / 4, –1), (X – 1 – X / 4, –1), e (X – 1, –1), ou (0, –1), (X / 4, –1), (3 * X / 4, –1) e (X – 1, -1).
6. Método, de acordo com a reivindicação 4 ou 5, caracterizado pelo fato de que as coordenadas de localização das amostras vizinhas à esquerda do bloco de croma são (-1, 0), (-1, 1),... e (-1, Y - 1), em que Y representa a altura do bloco de croma; e se o modo de intrapredição correspondente ao bloco de croma for um modo linear esquerdo LML de componente cruzado, as coordenadas de localização nas localizações predefinidas são (–1, 0), (–1, Y / 4), (–1, Y – 1 – Y / 4), e (–1, Y – 1), ou (–1, 0), (–1, Y / 4), (–1, 3 * Y / 4), e (–1, Y – 1).
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que a obtenção, a partir dos valores de luma obtidos, de um primeiro conjunto de luma e um segundo conjunto de luma compreende: determinar um valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas; e agrupar valores de luma que estão nos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas e que são menores ou iguais ao valor médio dos valores de luma para o primeiro conjunto de luma, e agrupar valores de luma que estão nos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas e que são maiores do que o valor médio dos valores de luma para o segundo conjunto de luma.
8. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que a obtenção, a partir dos valores de luma obtidos, de um primeiro conjunto de luma e um segundo conjunto de luma compreende: ordenar os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas em ordem crescente, para obter uma primeira fila de valor de luma; e agrupar valores de luma da primeira metade na primeira fila de valor de luma para o primeiro conjunto de luma, e agrupar valores de luma da segunda metade na fila de valor de luma para o segundo conjunto de luma; ou ordenar os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas em ordem decrescente, para obter uma segunda fila de valor de luma; e agrupar valores de luma da segunda metade na segunda fila de valores de luma para o primeiro conjunto de luma, e agrupar valores de luma da primeira metade na fila de valores de luma para o segundo conjunto de luma.
9. Método, de acordo com qualquer uma das reivindicações 1 a 8, caracterizado pelo fato de que a determinação, com base em um valor médio dos valores de luma no primeiro conjunto de luma, um valor médio dos valores de luma no segundo conjunto de luma, um valor médio dos valores de croma no primeiro conjunto de croma, e um valor médio dos valores de croma no segundo conjunto de croma, um coeficiente de escalamento em um modelo linear correspondente ao bloco de croma compreende: C  CRmean  = Lmean LLmean  LRmean , em que α é o coeficiente de escalamento no modelo linear correspondente ao bloco de croma, CLmean é o valor médio dos valores de croma no primeiro conjunto de croma, CRmean é o valor médio dos valores de croma no segundo conjunto de croma, LLmean é o valor médio dos valores de luma no primeiro conjunto de luma, e LRmean é o valor médio dos valores de luma no segundo conjunto de luma.
10. Método, de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que a determinação, com base no coeficiente de escalamento, de um fator de deslocamento no modelo linear correspondente ao bloco de croma compreende: determinar, com base no coeficiente de escalamento, o valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de luma no primeiro conjunto de luma, o fator de deslocamento no modelo linear correspondente ao bloco de croma.
11. Método, de acordo com a reivindicação 10,
caracterizado pelo fato de que a determinação, com base no coeficiente de escalamento, o valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de luma no primeiro conjunto de luma, o fator de deslocamento no modelo linear correspondente ao bloco de croma compreende:  = C Lm ean -   L Lm ean , em que α é o coeficiente de escalamento, β é o fator de deslocamento no modelo linear correspondente ao bloco de croma, CLmean é o valor médio dos valores de croma no primeiro conjunto de croma, e LLmean é o valor médio dos valores de luma no primeiro conjunto de luma.
12. Método, de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que a determinação, com base no coeficiente de escalamento, de um fator de deslocamento no modelo linear correspondente ao bloco de croma compreende: determinar, com base no coeficiente de escalamento, um valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma, o fator de deslocamento no modelo linear correspondente ao bloco de croma.
13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que a determinação, com base no coeficiente de escalamento, de um valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma, o fator de deslocamento no modelo linear correspondente ao bloco de croma compreende:  =Cmean -  Lmean , em que α é o coeficiente de escalamento, β é o fator de deslocamento no modelo linear correspondente ao bloco de croma, Cmean é o valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e Lmean é o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas.
14. 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 valores de croma de amostras de croma em localizações predefinidas de amostras vizinhas de um bloco de croma; e obter, com base em amostras vizinhas de um bloco de luma correspondente ao bloco de croma, valores de luma de amostras de luma correspondentes às amostras de croma nas localizações predefinidas; um módulo de classificação, configurado para: obter, a partir dos valores de luma obtidos, um primeiro conjunto de luma e um segundo conjunto de luma; e agrupar valores de croma de amostras de croma correspondentes a amostras de luma associadas a valores de luma no primeiro conjunto de luma para um primeiro conjunto de croma, e agrupar valores de croma de amostras de croma correspondentes a amostras de luma associadas a valores de luma no segundo conjunto de luma para um segundo conjunto de croma; e um módulo de determinação configurado para: determinar, com base em um valor médio dos valores de luma no primeiro conjunto de luma, um valor médio dos valores de luma no segundo conjunto de luma, um valor médio dos valores de croma no primeiro conjunto de croma, e um valor médio dos valores de croma no segundo conjunto de croma, um coeficiente de escalamento em um modelo linear correspondente ao bloco de croma; determinar, com base no coeficiente de escalamento, um fator de deslocamento no modelo linear correspondente ao bloco de croma; e determinar informações de predição do bloco de croma com base no coeficiente de escalamento, o fator de deslocamento, e informações de reconstrução de luma correspondentes ao bloco de croma, em que as informações de reconstrução de luma correspondentes ao bloco de croma compreendem informações de redução de amostragem de um bloco reconstruído de luma correspondente ao bloco de croma.
15. Aparelho, de acordo com a reivindicação 14, caracterizado pelo fato de que o módulo de obtenção é ainda configurado para: obter informações de indicação, e determinar, com base nas informações de indicação, um modo de intrapredição correspondente ao bloco de croma, em que o modo de intrapredição compreende pelo menos um de um modo linear LM, um modo linear acima LMA e um modo linear esquerdo LML; e determinar as localizações predefinidas com base no modo de intrapredição correspondente ao bloco de croma.
16. Aparelho, de acordo com a reivindicação 14 ou 15, caracterizado pelo fato de que o módulo de obtenção é ainda configurado para: obter os valores de croma das amostras de croma nas localizações predefinidas das amostras vizinhas do bloco de croma com base em uma correspondência predefinida entre um modo de intrapredição e uma localização predefinida e o modo de intrapredição correspondente ao bloco de croma.
17. Aparelho, de acordo com qualquer uma das reivindicações 14 a 16, caracterizado pelo fato de que as coordenadas de localização das amostras vizinhas de topo do bloco de croma são (0, -1), (1, -1),... e (X - 1, –1), e coordenadas de localização das amostras vizinhas à esquerda do bloco de croma são (–1, 0), (–1, 1),..., e (–1, Y – 1), em que X representa uma largura do bloco de croma, e Y representa a altura do bloco de croma; e se o modo de intrapredição correspondente ao bloco de croma for um modo linear LM de componente cruzado, as coordenadas de localização das amostras de croma nas localizações predefinidas são (0, -1), (X - 1, -1), (-1, 0) e (–1, Y – 1).
18. Aparelho, de acordo com a reivindicação 17, caracterizado pelo fato de que as coordenadas de localização das amostras vizinhas de topo do bloco de croma são (0, -1), (1, -1),... e (X - 1, -1), em que X representa a largura do bloco de croma; e se o modo de intrapredição correspondente ao bloco de croma for um modo linear acima LMA de componente cruzado, as coordenadas de localização nas localizações predefinidas são (0, –1), (X / 4, –1), (X – 1 – X / 4, –1), e (X – 1, –1), ou (0, –1), (X / 4, –1), (3 * X / 4, –1) e (X – 1, -1).
19. Aparelho, de acordo com a reivindicação 17 ou 18, caracterizado pelo fato de que as coordenadas de localização das amostras vizinhas à esquerda do bloco de croma são (-1, 0), (-1, 1),... e (-1, Y - 1), em que Y representa a altura do bloco de croma; e se o modo de intrapredição correspondente ao bloco de croma for um modo linear esquerdo LML de componente cruzado, as coordenadas de localização nas localizações predefinidas são (–1, 0), (–1, Y / 4), (–1, Y – 1 – Y / 4), e (–1, Y –
1), ou (–1, 0), (–1, Y / 4), (–1, 3 * Y / 4), e (–1, Y – 1).
20. Aparelho, de acordo com qualquer uma das reivindicações 14 a 19, caracterizado pelo fato de que o módulo de classificação é configurado para: determinar um valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas; e agrupar valores de luma que estão nos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas e que são menores ou iguais ao valor médio dos valores de luma para o primeiro conjunto de luma, e agrupar valores de luma que estão nos valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas e que são maiores do que o valor médio dos valores de luma para o segundo conjunto de luma.
21. Aparelho, de acordo com qualquer uma das reivindicações 14 a 19, caracterizado pelo fato de que o módulo de classificação é configurado para: ordenar os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas em ordem crescente, para obter uma primeira fila de valor de luma; e se uma quantidade de amostras de luma na primeira fila de valor de luma for um número par, agrupar valores de luma da primeira metade na primeira fila de valor de luma para o primeiro conjunto de luma, e agrupar valores de luma da segunda metade na fila de valor de luma para o segundo conjunto de luma; ou ordenar os valores de luma das amostras de luma correspondentes às amostras de croma nas localizações predefinidas em ordem decrescente, para obter uma segunda fila de valor de luma; e se uma quantidade de amostras de luma na segunda fila de valor de luma for um número par, agrupar valores de luma da segunda metade na segunda fila de valor de luma para o primeiro conjunto de luma, e agrupar valores de luma da primeira metade na fila de valor de luma para o segundo conjunto de luma.
22. Aparelho, de acordo com qualquer uma das reivindicações 14 a 21, caracterizado pelo fato de que o módulo de determinação é configurado para: CLmean  CRmean = LLmean  LRmean , em que α é o coeficiente de escalamento no modelo linear correspondente ao bloco de croma, CLmean é o valor médio dos valores de croma no primeiro conjunto de croma, CRmean é o valor médio dos valores de croma no segundo conjunto de croma, LLmean é o valor médio dos valores de luma no primeiro conjunto de luma, e LRmean é o valor médio dos valores de luma no segundo conjunto de luma.
23. Aparelho, de acordo com qualquer uma das reivindicações 14 a 22, caracterizado pelo fato de que o módulo de determinação é configurado para: determinar, com base no coeficiente de escalamento, o valor médio dos valores de croma no primeiro conjunto de croma, e o valor médio dos valores de luma no primeiro conjunto de luma, o fator de deslocamento no modelo linear correspondente ao bloco de croma.
24. Aparelho, de acordo com a reivindicação 23, caracterizado pelo fato de que o módulo de determinação é configurado para:  =CLmean -  LLmean , em que α é o coeficiente de escalamento, β é o fator de deslocamento no modelo linear correspondente ao bloco de croma, CLmean é o valor médio dos valores de croma no primeiro conjunto de croma, e LLmean é o valor médio dos valores de luma no primeiro conjunto de luma.
25. Aparelho, de acordo com qualquer uma das reivindicações 14 a 22, caracterizado pelo fato de que o módulo de determinação é configurado para: determinar, com base no coeficiente de escalamento, um valor médio dos valores de croma das amostras de croma nas localizações predefinidas, e o valor médio dos valores de luma das amostras de luma correspondentes às amostras de croma, o fator de deslocamento no modelo linear correspondente ao bloco de croma.
26. 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, e a memória é configurada para armazenar uma instrução executável por 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 13.
27. Meio de armazenamento legível por computador, caracterizado pelo fato de que o meio de armazenamento legível por computador armazena uma instrução, e quando o meio de armazenamento legível por computador é rodado 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 13.
28. Produto de programa de computador compreendendo uma instrução, caracterizado pelo fato de que quando o produto de programa de computador é rodado 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 13.
BR112021013163-9A 2019-01-03 2019-12-10 Método e aparelho de predição de bloco de croma BR112021013163A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910005667.3A CN111405287B (zh) 2019-01-03 2019-01-03 色度块的预测方法和装置
CN201910005667.3 2019-01-03
PCT/CN2019/124399 WO2020140700A1 (zh) 2019-01-03 2019-12-10 色度块的预测方法和装置

Publications (1)

Publication Number Publication Date
BR112021013163A2 true BR112021013163A2 (pt) 2021-09-28

Family

ID=71406909

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021013163-9A BR112021013163A2 (pt) 2019-01-03 2019-12-10 Método e aparelho de predição de bloco de croma

Country Status (12)

Country Link
US (1) US11943451B2 (pt)
EP (2) EP4362462A1 (pt)
JP (1) JP7239711B2 (pt)
KR (1) KR20210103573A (pt)
CN (4) CN116193132A (pt)
AU (1) AU2019419130A1 (pt)
BR (1) BR112021013163A2 (pt)
CA (1) CA3125500A1 (pt)
DK (1) DK3907995T3 (pt)
FI (1) FI3907995T3 (pt)
MX (1) MX2021008151A (pt)
WO (1) WO2020140700A1 (pt)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210083353A (ko) * 2018-11-05 2021-07-06 인터디지털 브이씨 홀딩스 인코포레이티드 이웃 샘플 의존 파라메트릭 모델에 기초한 코딩 모드의 단순화
US11483557B2 (en) * 2020-06-18 2022-10-25 Tencent America LLC Separate constrained directional enhancement filter
CN114066914A (zh) * 2020-07-30 2022-02-18 华为技术有限公司 一种图像处理方法以及相关设备
CN113099221B (zh) * 2021-02-22 2023-06-02 浙江大华技术股份有限公司 跨分量样点自适应补偿方法、编码方法及相关装置
WO2023107378A1 (en) * 2021-12-09 2023-06-15 Beijing Dajia Internet Information Technology Co., Ltd Method and apparatus for cross-component prediction for video coding
TW202335497A (zh) * 2021-12-29 2023-09-01 聯發科技股份有限公司 跨分量線性模型預測
JP2024006522A (ja) * 2022-07-04 2024-01-17 シャープ株式会社 予測画像生成装置、動画像復号装置、および動画像符号化装置
CN117478895A (zh) * 2022-07-19 2024-01-30 腾讯科技(深圳)有限公司 数据处理方法、装置、设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI257074B (en) * 2005-02-22 2006-06-21 Sunplus Technology Co Ltd Motion estimation method and system using colors information
CN105635737B (zh) * 2010-04-09 2019-03-15 Lg电子株式会社 处理视频数据的方法和装置
CN103688533B (zh) * 2011-06-20 2015-12-23 联发科技(新加坡)私人有限公司 可减少行存储器的色度帧内预测方法及装置
WO2013006986A1 (en) * 2011-07-12 2013-01-17 Intel Corporation Luma-based chroma intra prediction
US9948938B2 (en) 2011-07-21 2018-04-17 Texas Instruments Incorporated Methods and systems for chroma residual data prediction
CN103096057B (zh) * 2011-11-08 2016-06-29 华为技术有限公司 一种色度帧内预测方法和装置
CN103918269B (zh) * 2012-01-04 2017-08-01 联发科技(新加坡)私人有限公司 色度帧内预测方法及装置
WO2013169049A1 (ko) * 2012-05-10 2013-11-14 엘지전자 주식회사 인터 레이어 예측 방법 및 이를 이용하는 장치
CN104871537B (zh) * 2013-03-26 2018-03-16 联发科技股份有限公司 色彩间帧内预测的方法
US10397607B2 (en) * 2013-11-01 2019-08-27 Qualcomm Incorporated Color residual prediction for video coding
US11025903B2 (en) * 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
GB2571312B (en) * 2018-02-23 2020-05-27 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
CN109005408B (zh) * 2018-08-01 2020-05-29 北京奇艺世纪科技有限公司 一种帧内预测方法、装置及电子设备
KR20210073597A (ko) * 2018-12-21 2021-06-18 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치

Also Published As

Publication number Publication date
JP2023071854A (ja) 2023-05-23
CN116193132A (zh) 2023-05-30
EP3907995A4 (en) 2022-02-23
EP3907995A1 (en) 2021-11-10
KR20210103573A (ko) 2021-08-23
CN111405287A (zh) 2020-07-10
WO2020140700A1 (zh) 2020-07-09
EP3907995B1 (en) 2024-02-21
CN111919444A (zh) 2020-11-10
JP2022516180A (ja) 2022-02-24
JP7239711B2 (ja) 2023-03-14
US11943451B2 (en) 2024-03-26
CN111919444B (zh) 2023-02-03
CN111405287B (zh) 2023-02-28
CA3125500A1 (en) 2020-07-09
AU2019419130A1 (en) 2021-07-29
EP4362462A1 (en) 2024-05-01
MX2021008151A (es) 2021-08-11
CN116320454A (zh) 2023-06-23
DK3907995T3 (da) 2024-05-13
FI3907995T3 (fi) 2024-05-13
US20210329261A1 (en) 2021-10-21

Similar Documents

Publication Publication Date Title
BR112021013163A2 (pt) Método e aparelho de predição de bloco de croma
BR112021004984A2 (pt) aparelho e método para quantização inversa
US20230156202A1 (en) Chroma block prediction method and apparatus
BR122023024004A2 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR112021007865A2 (pt) método e aparelho de predição de imagem
CN110881126B (zh) 色度块预测方法以及设备
KR102616713B1 (ko) 이미지 예측 방법, 장치 및 시스템, 디바이스 및 저장 매체
BR112021001813A2 (pt) método de processamento de vídeo, aparelho de processamento de vídeo, codificador, decodificador, mídia e programa de computador
BR112021003999A2 (pt) relação entre elementos de restrição de partição
BR112021004124A2 (pt) método de decodificação de vídeo e decodificador de vídeo
BR112021009911A2 (pt) codificador, decodificador e métodos correspondentes usando armazenamento de mv compacto
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
EP3910955A1 (en) Inter-frame prediction method and device
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
BR112021011307A2 (pt) Método e aparelho de predição inter, fluxo de bits e mídia de armazenamento não transitória
BR112021012708A2 (pt) Método e aparelho de modelagem linear de componente cruzado para predição intra
CN110876061B (zh) 色度块预测方法及装置
JP7492051B2 (ja) クロマブロック予測方法及び装置
US11722668B2 (en) Video encoder, video decoder, and corresponding method

Legal Events

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

Free format text: O PEDIDO FOI DIVIDIDO NO BR122023008687-2 PROTOCOLO 870230037828 EM 05/05/2023 16:27.O PEDIDO FOI DIVIDIDO NO BR122023008696-1 PROTOCOLO 870230037857 EM 05/05/2023 16:53.