BR112021013110A2 - Dispositivo de geração de imagens de predição, dispositivo de decodificação de imagens em movimento, dispositivo de codificação de imagens em movimento e método de geração de imagens de predição - Google Patents

Dispositivo de geração de imagens de predição, dispositivo de decodificação de imagens em movimento, dispositivo de codificação de imagens em movimento e método de geração de imagens de predição Download PDF

Info

Publication number
BR112021013110A2
BR112021013110A2 BR112021013110-8A BR112021013110A BR112021013110A2 BR 112021013110 A2 BR112021013110 A2 BR 112021013110A2 BR 112021013110 A BR112021013110 A BR 112021013110A BR 112021013110 A2 BR112021013110 A2 BR 112021013110A2
Authority
BR
Brazil
Prior art keywords
value
prediction
image
parameter
chrominance
Prior art date
Application number
BR112021013110-8A
Other languages
English (en)
Inventor
Frank Bosse
Eiichi Sasaki
Yukinobu Yasugi
Tomohiro Ikai
Original Assignee
Sharp Kabushiki Kaisha
FG Innovation Company Limited
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 Sharp Kabushiki Kaisha, FG Innovation Company Limited filed Critical Sharp Kabushiki Kaisha
Publication of BR112021013110A2 publication Critical patent/BR112021013110A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

dispositivo de geração de imagens de predição, dispositivo de decodificação de imagens em movimento, dispositivo de codificação de imagens em movimento e método de geração de imagens de predição. uma geração de imagens preditivas é fornecida. primeiro e segundo valores de luminância correspondendo a, respectivamente, primeira e segunda posições em uma imagem de luminância são derivados. primeiro e segundo valores de crominância correspondendo a, respectivamente, primeira e segunda posições em uma imagem de crominância são derivados. primeiro e segundo valores de diferença indicam, respectivamente, uma primeira diferença entre os primeiro e segundo valores de luminância e uma segunda diferença entre os primeiro e segundo valores de crominância. um valor de deslocamento é derivado para uma operação de deslocamento e um primeiro parâmetro é derivado ao usar-se os primeiro e segundo valores de diferença, e um segundo parâmetro é derivado ao usar-se o segundo valor de luminância, o segundo valor de crominância, o primeiro parâmetro, e o valor de deslocamento de acordo com uma fórmula. o valor de deslocamento é ajustado para um primeiro limiar se um valor derivado ao usar-se os primeiro e segundo valores de diferença for menor do que o primeiro limiar.

Description

Relatório Descritivo da Patente de Invenção para "DISPOSI- TIVO DE GERAÇÃO DE IMAGENS DE PREDIÇÃO, DISPOSITIVO DE DECODIFICAÇÃO DE IMAGENS EM MOVIMENTO, DISPOSITIVO DE CODIFICAÇÃO DE IMAGENS EM MOVIMENTO E MÉTODO DE GE- RAÇÃO DE IMAGENS DE PREDIÇÃO". REFERÊNCIA CRUZADA A PEDIDO(S) RELACIONADO(S)
[0001] Esta invenção é um pedido em fase nacional do pedido de patente internacional PCT/JP2019/051080, depositado em 26 de de- zembro de 2019, agora publicado como WOZ2020/141599, que reivin- dica o benefício e a prioridade do Pedido Provisório de Patente dos EUA No. 62/787.646, depositado em 2 de janeiro de 2019, cujo conteúdo é aqui incorporado integralmente por referência.
CAMPO TÉCNICO
[0002] As modalidades da presente invenção se referem a um dis- positivo de geração de imagens de predição, um dispositivo de decodi- ficação de imagens em movimento e um dispositivo de codificação de imagens em movimento.
ANTECEDENTES DA INVENÇÃO
[0003] Com o propósito de transmitir ou gravar eficientemente ima- gens em movimento, um dispositivo de codificação de imagens em mo- vimento é usado para gerar dados codificados mediante a codificação de uma imagem em movimento, e um dispositivo de decodificação de imagens em movimento é usado para gerar uma imagem decodificada mediante a decodificação dos dados codificados.
[0004] Esquemas específicos de codificação de imagens em movi- mento incluem, por exemplo, H.264/AVC, codificação de vídeo de alta eficiência (HEVC), etc.
[0005] Em tais esquemas de codificação de imagens em movi- mento, as imagens (quadros) que formam uma imagem em movimento são gerenciadas por uma estrutura hierárquica e são codificadas/deco- dificadas para cada unidade de codificação (CU - "Coding Unit"), sendo que a estrutura hierárquica inclui fatias obtidas pela divisão das ima- gens, unidades de árvore de codificação (CTUs - "Coding Tree Units") obtidas pela divisão das fatias, CUs obtidas pela divisão das unidades de codificação.
[0006] Além disso, em tais esquemas de codificação de imagens em movimento, às vezes uma imagem de predição é gerada com base em imagens decodificadas locais obtidas pela codificação/decodificação de imagens de entrada e erros de predição (às vezes também chama- dos de "imagens de diferença" ou "imagens residuais") obtidos pela sub- tração da imagem de predição das imagens de entrada (imagens origi- nais) são codificados. Os métodos de geração de imagens de predição incluem predição interimagem (predição interquadro) e predição intrai- magem (predição intraquadro). As tecnologias de codificação e decodi- ficação de imagens em movimento dos últimos anos incluem o docu- mento não patentário 1.
[0007] Além disso, as tecnologias de codificação e decodificação de imagens em movimento dos últimos anos incluem a predição de modelo linear de componente cruzado (CCLM - "cross-component linear mo- del") para gerar uma imagem de predição de uma imagem de crominân- cia de acordo com uma imagem de luminância. Na predição de CCLM, os parâmetros de predição linear são derivados com o uso de imagens decodificadas contíguas a um bloco de objeto, e uma crominância do bloco de objeto é prevista de acordo com um modelo de predição linear (modelo CCLM) (documento não patentário 2).
LISTA DE REFERÊNCIAS Literatura não patentária
[0008] Documento não patentário 1: "Versatile Video Coding (Draft 3)", JVET-L1001, Joint Video Exploration Team (JVET) de ITU-T SG 16
WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 08/11/2018, 17h06minO6s
[0009] Documento não patentário 2: "CE3-5.1: On cross-component linear model simplification", JVET-LO191, Joint Video Exploration Team (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29W6G 11, 03/10/2018
SUMÁRIO DA INVENÇÃO Problema técnico
[0010] Conforme descrito acima, no processamento de CCLM, os parâmetros de predição linear são derivados, e as imagens de predição são geradas com o uso de um modelo de predição linear. As operações de números inteiros e consultas de tabela são empregadas na derivação de parâmetros de predição linear, mas o uso intenso de memória pela tabela é um problema.
[0011] Além disso, ao derivar um valor de predição com o uso de um produto de um termo de gradiente (parâmetro de predição de CCLM a) dos parâmetros de predição linear e um valor de pixel, uma largura de bit do parâmetro de predição de CCLM a aumenta no método do documento não patentário 1, resultando, assim, em um problema de o produto ser complexo. Adicionalmente, o documento não patentário 1 também usa um produto na derivação do termo de gradiente (parâmetro de predição de CCLM a) dos parâmetros de predição linear e um termo de deslocamento (parâmetro de predição de CCLM b) dos parâmetros de predição linear, mas esse produto serve também como um produto de valores com grandes larguras de bits, e é, portanto, complexo. Deve- se notar que um produto de valores com grandes larguras de bits au- menta a escala de hardware. Solução do problema
[0012] Para resolver o problema acima, uma porção de predição de CCLM de acordo com uma solução da presente invenção é uma porção de predição de CCLM para gerar uma imagem de predição por meio da predição de CCLM, sendo que a porção de predição de CCLM inclui: uma porção de derivação de parâmetros de predição de CCLM, para derivar parâmetros de predição de CCLM (a, b) com o uso de um valor de diferença de luminância, um valor de diferença de crominância e uma tabela; e uma porção de filtro de predição de CCLM para gerar uma imagem de predição de crominância com o uso de uma imagem de re- ferência de luminância e dos parâmetros de predição de CCLM (a, b). A porção de derivação de parâmetros de predição de CCLM deriva o pa- râmetro de predição de CCLM a com o uso de um primeiro valor de deslocamento shift a para deslocar à direita um valor obtido pela multi- plicação de um valor de uma tabela inversa referido no uso do valor de diferença de luminância pelo valor de diferença de crominância. A por- ção de filtro de predição de CCLM usa um segundo valor de desloca- mento especificado shiftA para deslocar à direita um produto do parâ- metro a e da luminância, derivando, assim, a imagem de predição de crominância. Efeitos vantajosos da invenção
[0013] De acordo com uma solução da presente invenção, obtém- se o efeito de simplificar a multiplicação com um parâmetro de predição linear na predição de CCLM.
BREVE DESCRIÇÃO DOS DESENHOS
[0014] A Figura 1 é um diagrama esquemático que mostra compo- nentes de um sistema de transmissão de imagem de acordo com essa modalidade.
[0015] A Figura 2 é um diagrama que mostra componentes de um dispositivo de transmissão equipado com um dispositivo de codificação de imagens em movimento de acordo com essa modalidade e compo- nentes de um dispositivo de recepção equipado com um dispositivo de decodificação de imagens em movimento de acordo com essa modali- dade.
[0016] A Figura 3 é um diagrama que mostra componentes de um dispositivo de gravação equipado com um dispositivo de codificação de imagens em movimento de acordo com essa modalidade e um disposi- tivo de reprodução equipado com um dispositivo de decodificação de imagens em movimento de acordo com essa modalidade.
[0017] A Figura 4 é um diagrama que mostra uma estrutura hierár- quica de dados em um fluxo codificado.
[0018] A Figura 5 é um diagrama que mostra um exemplo de divisão de CTU.
[0019] A Figura 6 é um diagrama esquemático que mostra tipos (nú- meros de modo) de modos de predição intraquadro.
[0020] A Figura 7 é um diagrama esquemático que mostra compo- nentes de um dispositivo de decodificação de imagens em movimento.
[0021] A Figura 8 é um diagrama esquemático que mostra compo- nentes de uma porção de decodificação de parâmetros de predição in- traquadro.
[0022] A Figura 9 é um diagrama que mostra regiões de referência para predição intraquadro.
[0023] A Figura 10 é um diagrama que mostra componentes de uma porção de geração de imagens de predição intraquadro.
[0024] A Figura 11 é um diagrama de bloco mostrando um exemplo dos componentes da porção de predição de CCLM.
[0025] A Figura 12 é um diagrama de blocos que mostra um exem- plo de componentes de uma porção de filtro de predição de CCLM de acordo com uma modalidade da presente invenção.
[0026] A Figura 13 é um diagrama que ilustra os pixels referidos na derivação de parâmetros de predição de CCLM de acordo com uma mo- dalidade da presente invenção.
[0027] A Figura 14 é um diagrama que mostra um exemplo de uma combinação (de luminância e crominância) usada na predição de CCLM de acordo com essa modalidade.
[0028] A Figura 15 é um diagrama de blocos que mostra componen- tes de um dispositivo de codificação de imagens em movimento.
[0029] A Figura 16 é um diagrama esquemático que mostra compo- nentes de uma porção de codificação de parâmetros de predição intra- quadro.
[0030] A Figura 17 é um diagrama que ilustra um exemplo de cál- culo do valor de um elemento não mantido em uma tabela.
[0031] A Figura 18 é um diagrama que ilustra um exemplo de cál- culo do valor de um elemento não mantido em uma tabela.
[0032] A Figura 19 é um diagrama que mostra um exemplo de fluxo de dados de um exemplo de processamento de acordo com a presente invenção.
[0033] A Figura 20 é um exemplo que mostra valores de normDiff, idx, etc., com diff estando em uma faixa de O a 63.
[0034] A Figura 21 é um exemplo que mostra valores de idx, sc, etc., com diff estando em uma faixa de O a 63.
[0035] A Figura 22 é um diagrama que mostra outro exemplo de fluxo de dados de um exemplo de processamento de acordo com a pre- sente invenção.
DESCRIÇÃO DAS MODALIDADES Primeira modalidade)
[0036] As modalidades da presente invenção são descritas abaixo com referência aos desenhos em anexo.
[0037] A Figura 1 é um diagrama esquemático que mostra compo- nentes de um sistema de transmissão de imagem 1 de acordo com essa modalidade.
[0038] O sistema de transmissão de imagem 1 é um sistema para transmitir um fluxo codificado obtido mediante a codificação de uma ima-
gem de objeto de codificação, a decodificação do fluxo codificado trans- mitido e a exibição de uma imagem. Os componentes do sistema de transmissão de imagem 1 incluem: um dispositivo de codificação de imagens em movimento (dispositivo de codificação de imagens) 11, uma rede 21, um dispositivo de decodificação de imagens em movimento (dispositivo de decodificação de imagem) 31 e um dispositivo de exibi- ção de imagens em movimento (dispositivo de exibição de imagens) 41.
[0039] Uma imagem T é inserida como entrada no dispositivo de codificação de imagens em movimento 11.
[0040] A rede 21 transmite fluxos codificados Te gerados pelo dis- positivo de codificação de imagens em movimento 11 para o dispositivo de decodificação de imagens em movimento 31. A rede 21 é a Internet, uma rede remota (WAN - "Wide Area Network"), uma rede local (LAN - "Local Area Network") ou uma combinação das mesmas. A rede 21 não se limita necessariamente a uma rede de comunicação bidirecional e pode ser uma rede de comunicação unidirecional para transmitir ondas de radiodifusão como transmissão digital terrestre e transmissão via sa- télite. Além disso, a rede 21 pode também ser substituída por uma mídia de armazenamento na qual os fluxos codificados Te são gravados, como um disco versátil digital (DVD, marca registrada), um disco Blue- ray (BD, marca registrada), etc.
[0041] O dispositivo de decodificação de imagens em movimento 31 decodifica os fluxos codificados Te transmitidos pela rede 21 respectiva- mente para gerar uma ou uma pluralidade de imagens decodificadas Td.
[0042] O dispositivo de exibição de imagens em movimento 41 exibe toda a ou parte da uma imagem ou da pluralidade de imagens decodificadas Td geradas pelo dispositivo de decodificação de imagens em movimento 31. O dispositivo de exibição de imagens em movimento 41 inclui, por exemplo, aparelhos de exibição como uma tela de cristal líquido, uma tela orgânica eletroluminescente (EL), etc. A tela pode es- tar sob a forma de, por exemplo, uma tela estacionária, uma tela móvel, um capacete de realidade virtual (HMD - "head-mounted display"), etc. Além disso, quando o dispositivo de decodificação de imagens em mo- vimento 31 tem altas capacidades de processamento, é exibida uma imagem com alta qualidade de imagem, e quando o dispositivo de de- codificação de imagens em movimento 31 tem apenas capacidades de processamento relativamente baixas, é exibida uma imagem que não exige altas capacidades de processamento e de exibição. <Operador>
[0043] Os operadores usados neste relatório descritivo são descri- tos a seguir.
[0044] >> denota deslocamento à direita; << denota deslocamento à esquerda; & denota operação AND bit a bit; | denota operação OR bit a bit; |= denota um operador de atribuição OR; || denota soma lógica.
[0045] x?y:z é um operador ternário no qual assume-se y quando x é verdadeiro (diferente de 0) e assume-se z quando x é falso (0).
[0046] Clip3(a, b, c) é uma função para reduzir c a um valor igual a ou maior que a e igual a ou menor que b, e é uma função para retornar asec<a,retornar b se c > b, e retornar c caso contrário (onde a <= b).
[0047] abs(a) é uma função para retornar o valor absoluto de a.
[0048] Int(a) é uma função para retornar o valor inteiro de a.
[0049] floor(a) (piso) é uma função para retornar o maior valor in- teiro igual a ou menor que a.
[0050] ceil(a) (teto) é uma função para retornar o menor valor inteiro igual a ou maior que a.
[0051] a/d denota a divisão de a por d (truncando decimais).
[0052] a'b denota a elevado à potência de b.
[0053] sign (a) (sinal) é uma função para retornar um sinal, e retor- nar 1 se a > O, retornar O se a == O, e retornar -1 se a< O.
<Estrutura do fluxo codificado Te>
[0054] Antes da descrição detalhada do dispositivo de codificação de imagens em movimento 11 e do dispositivo de decodificação de ima- gens em movimento 31 de acordo com essa modalidade, é descrita uma estrutura de dados do fluxo codificado Te gerado pelo dispositivo de co- dificação de imagens em movimento 11 e decodificado pelo dispositivo de decodificação de imagens em movimento 31.
[0055] A Figura 4 é um diagrama que mostra uma estrutura hierár- quica de dados no fluxo codificado Te. O fluxo codificado Te inclui, de modo exemplificador, uma sequência e uma pluralidade de imagens que formam a sequência. As Figuras 4(a) a 4(f) são diagramas que ilustra, respectivamente, uma sequência de vídeo de codificação de uma se- quência padrão SEQ, uma imagem de codificação que define uma ima- gem PICT, uma fatia de codificação que define uma fatia S, dados de fatia de codificação que definem dados de fatia, uma unidade de árvore de codificação incluída nos dados de fatia de codificação e uma unidade de codificação incluída na unidade de árvore de codificação. Sequência de vídeo de codificação)
[0056] Na sequência de vídeo de codificação, é definido um con- junto de dados a ser referido pelo dispositivo de decodificação de ima- gens em movimento 31 para decodificar a sequência SEQ de um objeto de processamento. O vídeo de codificação da sequência SEQ é mos- trada na Figura 4(a) e inclui um conjunto de parâmetros de vídeo (VPS), múltiplos conjuntos de parâmetros de sequência (SPSs), múltiplos con- juntos de parâmetros de imagem (PPSs), múltiplas imagens (PICTs), e informações de aprimoramento suplementares (SEI).
[0057] No VPS, em uma imagem em movimento formada por uma pluralidade de camadas, são definidos um conjunto de parâmetros de co- dificação comuns a uma pluralidade de imagens em movimento, uma plu- ralidade de camadas incluídas na imagem em movimento e um conjunto de parâmetros de codificação relacionados a cada uma das camadas.
[0058] No SPS, é definido um conjunto de parâmetros de codifica- ção referido pelo dispositivo de decodificação de imagens em movi- mento 31 para decodificar uma sequência de objetos. Por exemplo, são definidas a largura e a altura de uma imagem. Deve-se notar que pode haver uma pluralidade de SPSs. Nesse caso, qualquer um dentre a plu- ralidade de SPSs é selecionado a partir do PPS.
[0059] No PPS, é definido um conjunto de parâmetros de codifica- ção referido pelo dispositivo de decodificação de imagens em movi- mento 31 para decodificar cada imagem na sequência de objetos. Por exemplo, são incluídos um valor de referência (pic init qp minus26) de uma largura de quantização para decodificação da imagem e um indi- cador (weighted pred flag) para indicar a aplicação da predição ponde- rada. Deve-se notar que pode haver uma pluralidade de PPSs. Nesse caso, qualquer um dentre a pluralidade de PPSs é selecionado a partir de cada imagem na sequência de objetos. Imagem de codificação)
[0060] Na imagem de codificação, é definido um conjunto de dados referido pelo dispositivo de decodificação de imagens em movimento 31 para decodificar a imagem PICT do objeto de processamento. A imagem PICT é mostrada na Figura 4(b) e inclui da fatia O à fatia NS-1 (NSé o número total de fatias incluídas na imagem PICT).
[0061] Deve-se notar que, na descrição a seguir, quando não há necessidade de distinguir entre a fatia O à fatia NS-1, os subscritos dos números de referência podem ser omitidos. Além disso, outros dados incluídos no fluxo codificado Te e que têm um subscrito a ser descrito abaixo seguem as mesmas regras. Fatia de codificação)
[0062] Na fatia de codificação, é definido um conjunto de dados re- ferido pelo dispositivo de decodificação de imagens em movimento 31 para decodificar uma fatia S do objeto de processamento. A fatia é mos- trada na Figura 4(c) e inclui um cabeçalho de fatia e dados de fatia.
[0063] O cabeçalho de fatia inclui um grupo de parâmetros de codi- ficação referido pelo dispositivo de decodificação de imagens em movi- mento 31 para determinar um método de decodificação de uma fatia de objeto. A informação de designação de tipo de fatia (slice type) para designar um tipo de fatia é um exemplo de um parâmetro de codificação incluído no cabeçalho de fatia.
[0064] Exemplos de tipos de fatia que podem ser designados pela informação de designação de tipo de fatia incluem (1) fatia | que usa apenas a predição intraquadro durante a codificação, (2) fatia P que usa a predição unidirecional ou a predição intraquadro durante a codifica- ção, (3) fatia B que usa a predição unidirecional, a predição bidirecional ou a predição intraquadro durante a codificação, e similares. Deve-se notar que a predição interquadro não se limita à predição unidirecional e à predição bidirecional, e mais imagens de referência podem ser usa- das para gerar uma imagem de predição. A fatia P e a fatia B usadas deste ponto em diante referem-se a uma fatia que inclui um bloco no qual a predição interquadro pode ser utilizada.
[0065] Deve-se notar que o cabeçalho de fatia também pode incluir uma referência (pic parameter set id) ao conjunto de parâmetros de imagem PPS. Dados de fatia de codificação)
[0066] Nos dados de fatia de codificação, é definido um conjunto de dados referido pelo dispositivo de decodificação de imagens em movi- mento 31 para decodificar dados de fatia do objeto de processamento. Os dados de fatia são mostrados na Figura 4(d) e incluem múltiplas CTUs. A CTU é um bloco de um tamanho fixo (por exemplo, 64 x 64) que forma uma fatia e é chamada também de a maior unidade de codi- ficação (LCU - "Largest Coding Unit").
Unidade de árvore de codificação)
[0067] Na Figura 4(e), é definido um conjunto de dados referido pelo dispositivo de decodificação de imagens em movimento 31 para deco- dificar a CTU do objeto de processamento. A CTU é dividida por divisão de árvore quaternária ("Quad Tree") recursiva (divisão de QT), divisão de árvore binária (divisão de BT) ou divisão de árvore ternária (divisão de TT) em unidades de codificação CU que servem como uma unidade básica de processamento de codificação. A divisão de BT e a divisão de TT são coletivamente chamadas de divisão de múltiplas árvores (MT - "Multi Tree") ou divisão de MT. Os nós de uma estrutura em árvore obtida por meio de divisão de árvore quaternária recursiva são chamados de nós de codificação. Os nós intermediários de uma árvore quaternária, de uma árvore binária e de uma árvore ternária são nós de codificação, e a própria CTU também é definida como o nó de codificação mais alto.
[0068] Uma CT (árvore de codificação) inclui as seguintes informa- ções usadas como informações de CT: um indicador de divisão de QT (at split cu flag) para indicar se deve ser executada uma divisão de QT, um indicador de divisão de MT (mtt split cu flag) para indicar se existe uma divisão de MT, uma direção de divisão de MT (mtt split cu verti- cal flag) para indicar uma direção de divisão da divisão de MT e um tipo de divisão de MT (mtt split cu binary flag) para indicar um tipo de di- visão da divisão de MT. Os indicadores qt split cu flag, mtt split cu flag, mtt split cu vertical flag e mtt split cu binary flag são trans- mitidos tendo como base cada nó de codificação.
[0069] A Figura 5 é um diagrama que mostra um exemplo de divisão de CTU. Quando qt split cu flag é 1, o nó de codificação é dividido em quatro nós de codificação (Figura 5(b)).
[0070] Quando qt split cu flag é 0 e mtt split cu flag é 0, o nó de codificação não é dividido, e uma CU é mantida como um nó (Figura 5(a)). A CU é um nó de extremidade dos nós de codificação e não é submetida à divisão adicional. A CU é uma unidade básica do proces- samento de codificação.
[0071] Quando mtt split cu flag é 1, a divisão de MT é realizada no nó de codificação da forma descrita a seguir. Quando mtt split cu ver- tical flag é O e mtt split cu binary flag é 1, o nó de codificação é divi- dido horizontalmente em dois nós de codificação (Figura 5(d)); quando mit split cu vertical flag é 1 e mtt split cu binary flag é 1, o nó de co- dificação é dividido verticalmente em dois nós de codificação (Figura 5(c)). Além disso, quando mtt split cu vertical flag é O e mtt split cu binary flag é O, o nó de codificação é dividido horizontalmente em três nós de codificação (Figura 5(f)); quando mtt split cu vertical flagé 1 e mit split cu binary flag é O, o nó de codificação é dividido vertical- mente em três nós de codificação (Figura 5(e)). Essas divisões são ilus- tradas na Figura 5(g).
[0072] Além disso, quando o tamanho da CTU é 64 x 64 pixels, o tamanho da CU pode ser qualquer um dentre 64 x 64 pixels, 64 x 32 pixels, 32 x 64 pixels, 32 x 32 pixels, 64 x 16 pixels, 16 x 64 pixels, 32 x 16 pixels, 16 x 32 pixels, 16 x 16 pixels, 64 x 8 pixels, 8 x 64 pixels, 32 x 8 pixels, 8 x 32 pixels, 16 x 8 pixels, 8 x 16 pixels, 8 x 8 pixels, 64 x 4 pixels, 4 x 64 pixels, 32 x 4 pixels, 4 x 32 pixels, 16 x 4 pixels, 4 x 16 pixels, 8 x 4 pixels, 4 x 8 pixels e 4 x 4 pixels. Unidade de codificação)
[0073] Conforme mostrado na Figura 4(f), é definido um conjunto de dados referido pelo dispositivo de decodificação de imagens em movi- mento 31 para decodificar a unidade de codificação do objeto de pro- cessamento. Especificamente, a CU consiste em uma CU de cabeçalho CUH, parâmetros de predição, parâmetros de transformada, coeficien- tes de quantização e transformada, etc. No cabeçalho de CU, um modo de predição e similares são definidos.
[0074] O processamento de predição pode ser realizado para cada
CU e pode ser realizado para cada sub-CU obtida pela divisão adicional da CU. Quando a CU e a sub-CU têm o mesmo tamanho, uma sub-CU é incluída na CU. Quando tamanho da CU é maior que o tamanho da sub-CU, a CU é dividida em sub-CUs. Por exemplo, quando a CU é 8 x 8 e a sub-CU é 4 x 4, a CU é dividida em quatro sub-CUs, incluindo duas divisões horizontais e duas divisões verticais.
[0075] Os tipos de predição (modos de predição) incluem predição intraquadro e predição interquadro. A predição intraquadro é a predição na mesma imagem, e a predição interquadro se refere ao processa- mento de predição realizado entre imagens mutuamente diferentes (por exemplo, entre pontos de tempo de exibição).
[0076] O processamento em uma porção de transformada/quanti- zação é executado para cada CU, mas o coeficiente de quantização e transformada também pode ser submetido à codificação de entropia para cada sub-bloco de 4 x 4 e similares. Parâmetros de predição)
[0077] A imagem de predição é derivada por parâmetros de predi- ção associados ao bloco. Os parâmetros de predição incluem parâme- tros de predição para a predição intraquadro e a predição interquadro.
[0078] Os parâmetros de predição para a predição intraquadro se- rão descritos a seguir. Os parâmetros de predição intraquadro consis- tem em um modo de predição de luminância IntraPredModeY e um modo de predição de crominância IntraPredModeC. A Figura 6 é um diagrama esquemático que mostra tipos (números de modo) de modos de predição intraquadro. Conforme mostrado na Figura 6, há, por exem- plo, 67 modos de predição intraquadro (O a 66) e 28 modos de predição de ângulo amplo (-14 a -1 e 67 a 80). Por exemplo, a predição plana (0), a predição DC (1) e a predição angular (angular) (2 a 66). Além disso, os modos de CCLM (81 a 83) podem ser adicionados para crominância.
[0079] Os elementos de sintaxe usados para derivar parâmetros de predição intraquadro incluem, por exemplo, intra luma mpm flag, mpm idx, mpm remainder, etc. (MPM)
[0080] O indicador intra luma mpm flag indica se o modo de pre- dição de luminância Intra Pred ModeY de um bloco de objeto é consis- tente com o modo mais provável (MPM - "Most Probable Mode"). O MPM é um modo de predição incluído em uma lista de candidatos a MPM mpmCandList[]. A lista de candidatos a MPM é uma lista na qual os candidatos são armazenados, em que, de acordo com estimativas baseadas em um modo de predição intraquadro de um bloco contíguo e em um modo de predição intraquadro específico, as probabilidades dos candidatos que são aplicados a um bloco de objeto são altas. Se intra luma mpm flag for 1, então o modo de predição de luminância IntraPredModeY para o bloco de objeto é derivado com o uso da lista de candidatos a MPM e de um índice mpm idx. IntraPredModeY = mpmCandListimpm idx] (REM)
[0081] Se intra luma mpm flag for O, então um modo de predição de luminância IntraPredModeY é derivado com o uso de mpm remain- der. Especificamente, o modo de predição intraquadro é selecionado dentre os modos RemlntraPredMode restantes após a remoção dos mo- dos de predição intraquadro incluídos na lista de candidatos a MPM den- tre todos os modos de predição intraquadro. Componentes do dispositivo de decodificação de imagens em movi- mento)
[0082] Figura 7 é um diagrama esquemático mostrando componen- tes de um dispositivo de decodificação de imagem em movimento. Se- rão descritos a seguir os componentes do dispositivo de decodificação de imagens em movimento 31 (Figura 7) de acordo com a presente mo- dalidade.
[0083] Os componentes do dispositivo de decodificação de imagens em movimento 31 incluem: uma porção de decodificação de entropia 301, uma porção de decodificação de parâmetros (dispositivo de deco- dificação de imagens de predição) 302, um filtro de circuito 305, uma memória de imagens de referência 306, uma memória de parâmetros de predição 307, uma porção de geração de imagens de predição 308, uma porção de quantização inversa/transformada inversa 311 e uma porção de adição 312. Deve-se notar que, de acordo com o dispositivo de codificação de imagens em movimento 11 descrito abaixo, o dispo- sitivo de decodificação de imagens em movimento 31 pode não incluir o filtro de circuito 305.
[0084] A porção de decodificação de parâmetros 302 inclui adicio- nalmente uma porção de decodificação de cabeçalho, uma porção de decodificação de informações de CT e uma porção de decodificação de CU (porção de decodificação de modo de predição) todos as quais não são mostradas na Figura 7. A porção de decodificação de CU inclui adi- cionalmente uma porção de decodificação de TU. Os componentes acima também podem ser coletivamente chamados de um módulo de decodificação. A porção de decodificação de cabeçalho decodifica in- formações de conjunto de parâmetros como o VPS, o SPSe o PPS eo cabeçalho de fatia (informações de fatia) a partir dos dados codificados. A porção de decodificação de informações de CT decodifica a CT a par- tir dos dados codificados. A porção de decodificação de CU decodifica a CU a partir dos dados codificados. Quando a TU inclui o erro de pre- dição, a porção de decodificação de TU decodifica informações de atu- alização de QP (valor de correção de quantização) e um erro de predi- ção de quantização (residual coding) a partir dos dados codificados.
[0085] Além disso, a porção de decodificação de parâmetros 302 é configurada para incluir uma porção de decodificação de parâmetros de predição interquadro 303 e uma porção de decodificação de parâmetros de predição intraquadro 304. A porção de geração de imagens de pre- dição 308 é configurada para incluir uma porção de geração de imagens de predição interquadro 309 e uma porção de geração de imagens de predição intraquadro 310.
[0086] Além disso, um exemplo no qual a CTU e a CU são usadas como unidades de processamento é descrito abaixo; entretanto, o pro- cessamento não se limita a isso e pode também ser realizado em uni- dades de sub-CUs. Alternativamente, a CTU e a CU podem ser substi- tuídas por blocos, e a sub-CU pode ser substituída por um sub-bloco; o processamento pode ser realizado em unidades de blocos ou sub-blo- cos.
[0087] A porção de decodificação de entropia 301 executa a deco- dificação de entropia em um fluxo codificado Te inserido como entrada a partir do meio externo, separa cada código (elemento de sintaxe) e executa a decodificação. O código separado inclui informações de pre- dição para gerar imagens de predição, erros de predição para gerar ima- gens de diferença e similares. A porção de decodificação de entropia 301 fornece o código separado para a porção de decodificação de pa- râmetros 302. Funções da porção de decodificação de parâmetros de predição intra- quadro 304)
[0088] A porção de decodificação de parâmetros de predição intra- quadro 304 decodifica o parâmetro de predição intraquadro como o modo de predição intraquadro IntraPredMode fazendo referência ao pa- râmetro de predição armazenado na memória de parâmetros de predi- ção 307 e com base no código inserido como entrada a partir da porção de decodificação de entropia 301. A porção de decodificação de parâà- metros de predição intraquadro 304 fornece o parâmetro de predição intraquadro decodificado para a porção de geração de imagens de pre- dição 308 e, então, o parâmetro de predição intraquadro decodificado é armazenado na memória de parâmetros de predição 307. A porção de decodificação de parâmetros de predição intraquadro 304 pode também derivar modos de predição intraquadro que diferem em luminância e crominância.
[0089] A Figura 8 é um diagrama esquemático que mostra os com- ponentes da porção de decodificação de parâmetros de predição intra- quadro 304 da porção de decodificação de parâmetros 302. Conforme mostrado na Figura 8, a porção de decodificação de parâmetros de pre- dição intraquadro 304 é configurada para incluir: uma porção de controle de decodificação de parâmetros 3041, uma porção de decodificação de parâmetros de predição intraquadro de luminância 3042 e uma porção de decodificação de parâmetros de predição intraquadro de crominância
3043.
[0090] A porção de controle de decodificação de parâmetros 3041 indica a decodificação de um elemento de sintaxe para a porção de de- codificação de entropia 301 e recebe o elemento de sintaxe a partir da porção de decodificação de entropia 301. Se intra luma mpm flag for 1, então a porção de controle de decodificação de parâmetros 3041 for- nece mpm idx a uma porção de decodificação de parâmetros MPM 30422 na porção de decodificação de parâmetros de predição intraqua- dro de luminância 3042. Além disso, se intra luma mpm flag for O, en- tão a porção de controle de decodificação de parâmetros 3041 fornece mpm remainder a uma porção de decodificação de parâmetros não MPM 30423 da porção de decodificação de parâmetros de predição in- traquadro de luminância 3042. Adicionalmente, a porção de controle de decodificação de parâmetros 3041 fornece um parâmetro de predição intraquadro de crominância intra chroma pred mode à porção de de- codificação de parâmetros de predição intraquadro de crominância
3043.
[0091] A porção de decodificação de parâmetros de predição intra- quadro de luminância 3042 é configurada para incluir: uma porção de derivação de lista de candidatos a MPM 30421, a porção de decodifica- ção de parâmetros MPM 30422 e a porção de decodificação de parâà- metros não MPM 30423 (uma porção de decodificação e uma porção de derivação).
[0092] A porção de decodificação de parâmetros MPM 30422 deriva o modo de predição de luminância IntraPredModeY com referência à lista de candidatos a MPM mpmCandList[] derivada pela porção de de- rivação de lista de candidatos a MPM 30421 e mpm idx, e fornece o modo derivado à porção de geração de imagens de predição intraqua- dro 310.
[0093] A porção de decodificação de parâmetros não MPM 30423 deriva o modo IntraPredModeY a partir da lista de candidatos a MPM mpmCandList[] e mpm remainder, e fornece o modo derivado à porção de geração de imagens de predição intraquadro 310.
[0094] A porção de decodificação de parâmetros de predição intra- quadro de crominância 3043 deriva o modo de predição de crominância IntraPredModeC a partir de intra chroma pred mode, e fornece o modo derivado à porção de geração de imagens de predição intraqua- dro 310.
[0095] O filtro de circuito 305 é um filtro fornecido em um circuito de codificação, e é um filtro para eliminar a distorção de bloco e a distorção de oscilação ("ringing") para melhorar a qualidade da imagem. O filtro de circuito 305 executa filtragem, como filtragem de desbloqueio ("de- blocking"), desvio adaptativo de amostragem (SAO - "Sample Adaptive Offset") e filtragem de circuito adaptativa (ALF - "Adaptive Loop Filter") na imagem decodificada da CU gerada pela porção de adição 312.
[0096] A memória de imagens de referência 306 armazena a ima- gem decodificada da CU gerada pela porção de adição 312 em uma posição predefinida para cada imagem de objeto e cada CU de objeto.
[0097] A memória de parâmetros de predição 307 armazena os pa- râmetros de predição em uma posição predefinida para a CTU ou a CU de cada objeto decodificado. Especificamente, a memória de parâme- tros de predição 307 armazena um parâmetro decodificado pela porção de decodificação de parâmetros 302, um modo de predição predMode separado pela porção de decodificação de entropia 301, etc.
[0098] O modo de predição predMode, os parâmetros de predição, etc., são inseridos como entrada na porção de geração de imagens de predição 308. Além disso, a porção de geração de imagens de predição 308 lê a imagem de referência a partir da memória de imagens de refe- rência 306. A porção de geração de imagens de predição 308 usa, em um modo de predição indicado pelo modo de predição predMode, os parâmetros de predição e a imagem de referência lida (bloco de imagem de referência) para gerar uma imagem de predição do bloco ou do sub- bloco. Aqui, o bloco de imagem de referência se refere a uma coleção (em geral, um retângulo e, portanto, chamado de bloco) de pixels na imagem de referência, e é uma região referida para a geração de ima- gens de predição. Porção de geração de imagens de predição intraquadro 310)
[0099] Se o modelo de predição predMode indicar o modo de predi- ção intraquadro, então a porção de geração de imagens de predição intraquadro 310 executa a predição intraquadro com o uso do parâmetro de predição intraquadro inserido como entrada a partir da porção de de- codificação de parâmetros de predição intraquadro 304 e pixels de re- ferência lidos a partir da memória de imagens de referência 306.
[00100] Especificamente, a porção de geração de imagens de predi- ção intraquadro 310 lê, a partir da memória de imagens de referência 306, blocos contíguos em uma imagem de objeto e dentro de uma faixa predeterminada de distância até o bloco de objeto. Os blocos contíguos dentro da faixa predeterminada são blocos contíguos à esquerda, lado esquerdo superior, topo e lado direito superior do bloco de objeto, e va- riam com as regiões referidas no modo de predição intraquadro.
[00101] A porção de geração de imagens de predição intraquadro 310 gera uma imagem de predição de um bloco de objeto com referên- cia aos valores de pixel decodificados lidos e ao modo de predição indi- cado por IntraPredMode. A porção de geração de imagens de predição intraquadro 310 fornece a imagem de predição gerada do bloco à por- ção de adição 312.
[00102] A geração de imagens de predição com base nos modos de predição intraquadro é ilustrada abaixo. Na predição plana, predição DC e predição angular, uma região periférica decodificada contígua (pró- xima) a um bloco de objeto de predição é definida para uma região de referência R. Em seguida, a imagem de predição é gerada mediante a extrapolação dos pixels na região de referência R em uma direção es- pecífica. Por exemplo, a região de referência R pode ser configurada para ser uma região em formato de L (por exemplo, a região represen- tada por pixels marcados com círculos preenchidos com linhas diago- nais) que inclui a esquerda e o topo (ou adicionalmente, esquerda su- perior, direita superior, esquerda inferior) do bloco de objeto de predi- ção.
Detalhes relacionados à porção de geração de imagens de predição)
[00103] A seguir, os detalhes referentes aos componentes da porção de geração de imagens de predição intraquadro 310 serão descritos com o uso da Figura 10. A Figura 10 é um diagrama mostrando compo- nentes de uma porção de geração de imagens de predição intraquadro. A porção de geração de imagens de predição intraquadro 310 inclui: uma porção de configuração de bloco de objeto de predição 3101, uma porção de configuração de imagem de referência não filtrada 3102 (uma primeira porção de configuração de imagem de referência), uma porção de configuração de imagem de referência filtrada 3103 (uma segunda porção de configuração de imagem de referência), uma porção de pre- dição 3104 e uma porção de correção de imagem de predição 3105 (uma porção de correção de imagem de predição, uma porção de co- mutação de filtro e uma porção de modificação de coeficiente de pon- deração).
[00104] A porção de predição 3104 gera uma imagem de predição temporária (uma imagem de predição antes da correção) do bloco de objeto de predição com base nos respectivos pixels de referência (uma imagem de referência não filtrada) na região de referência R, numa ima- gem de referência filtrada gerada por um filtro de pixel de referência (um primeiro filtro) e no modo de predição intraquadro, e fornece a imagem gerada à porção de correção de imagem de predição 3105. A porção de correção de imagem de predição 3105 corrige a imagem de predição temporária de acordo com o modo de predição intraquadro, gera uma imagem de predição (uma imagem de predição corrigida) e fornece a imagem gerada.
[00105] Serão descritos a seguir as funções da porção de geração de imagens de predição intraquadro 310.
Porção de configuração de bloco de objeto de predição 3101)
[00106] A porção de configuração de bloco de objeto de predição 3101 configura uma CU de objeto para ser um bloco de objeto de predi- ção e fornece informações relacionadas ao bloco de objeto de predição (informações de bloco de objeto de predição). As informações de bloco de objeto de predição incluem ao menos um tamanho, uma posição e um índice que indica a luminância ou crominância do bloco de objeto de predição.
Porção de configuração de imagem de referência não filtrada 3102)
[00107] A porção de configuração de imagem de referência não fil- trada 3102 configura uma região periférica contígua do bloco de objeto de predição para ser a região de referência R com base no tamanho e na posição do bloco de objeto de predição. Em seguida, para cada valor de pixel dentro da região de referência R (imagem de referência não filtrada, pixels de contorno), cada valor de pixel decodificado em uma posição correspondente na memória de imagens de referência 306 é configurado. A Figura 9 é um diagrama mostrando regiões de referência para predição intraquadro. A fileira rIx][-1] de pixels decodificados con- tíguos ao lado superior do bloco de objeto de predição e a coluna r[-1][y] de pixels decodificados contíguos ao lado esquerdo do bloco de objeto de predição mostrado na Figura 9(a) são imagens de referência não fil- tradas.
Porção de configuração de imagem de referência filtrada 3103)
[00108] A porção de configuração de imagem de referência filtrada 3103 aplica o filtro de pixel de referência (o primeiro filtro) à imagem de referência não filtrada de acordo com o modo de predição intraquadro e deriva a imagem de referência filtrada s para cada posição (x, y) na re- gião de referência R. Especificamente, a imagem de referência filtrada (Figura 9(b)) é derivada aplicando-se um filtro passa baixa à imagem de referência não filtrada da posição (x, y) e àquela que circunda a posição (x, y). Deve-se notar que o filtro passa baixa não precisa necessaria- mente ser aplicado a todos os modos de predição intraquadro, e o filtro passa baixa pode ser aplicado também a parte dos modos de predição intraquadro. Deve-se notar que o filtro aplicado à imagem de referência não filtrada na região de referência R na porção de configuração de pixel de referência filtrado 3103 é chamado de "filtro de pixel de referência (pri- meiro filtro)", e, de modo correspondente, o filtro para corrigir a imagem de predição temporária na porção de correção de imagem de predição 3105 descrito mais adiante é chamado de "filtro de contorno (segundo filtro)".
Funções da porção de predição intraquadro 3104)
[00109] A porção de predição intraquadro 3104 gera a imagem de predição temporária (os valores de pixel de predição temporários, a ima- gem de predição antes da correção) do bloco de objeto de predição com base no modo de predição intraquadro, na imagem de referência não filtrada e nos valores de pixel de referência filtrados, e fornece a imagem gerada à porção de correção de imagem de predição 3105. A porção de predição 3104 é fornecida internamente com: uma porção de predição plana 31041, uma porção de predição DC 31042, uma porção de predi- ção angular 31043 e uma porção de predição de CCLM (o dispositivo de geração de imagens de predição) 31044. A porção de predição 3104 seleciona uma porção de predição específica de acordo com o modo de predição intraquadro e insere como entrada uma imagem de referência não filtrada e uma imagem de referência filtrada. A relação entre o modo de predição intraquadro e uma porção de predição correspondente é mostrada abaixo. Predição plana +»-Porção de predição plana 31041 Predição DC +»-*Porção de predição DC 31042 Predição angular ++-Porção de predição angular 31043 Predição de CCLM Porção de predição de CCLM 31044 Predição plana)
[00110] A porção de predição plana 31041 gera uma imagem de pre- dição temporária mediante a adição linear de uma pluralidade de ima- gens de referência filtradas de acordo com uma distância entre uma po- sição de pixel de objeto de predição e uma posição de pixel de referên- cia, e fornece a imagem gerada à porção de correção de imagem de predição 3105. Predição DC)
[00111] A porção de predição DC 31042 deriva um valor de predição DC equivalente a uma média da imagem de referência filtrada s e for- nece uma imagem de predição temporária q referente aos valores de predição DC como valores de pixel.
Predição angular)
[00112] A porção de predição angular 31043 gera uma imagem de predição temporária q com o uso da imagem de referência filtrada s em uma direção de predição (direção de referência) mostrada no modo de predição intraquadro e fornece a imagem gerada à porção de correção de imagem de predição 3105. Predição de modelo linear de componente cruzado (CCLM))
[00113] A porção de predição de CCLM 31044 prevê valores de pixel de crominância com base nos valores de pixel de luminância. Especifi- camente, uma imagem de predição da imagem de crominância (Cb, Cr) é gerada com o uso de um modelo linear com base em uma imagem de luminância decodificada. Funções da porção de correção de imagem de predição 3105)
[00114] A porção de correção de imagem de predição 3105 corrige, de acordo com o modo de predição intraquadro, uma imagem de predi- ção temporária fornecida a partir da porção de predição 3104. Especifi- camente, para cada pixel da imagem de predição temporária, a porção de correção de imagem de predição 3105 realiza a adição ponderada (cálculo da média ponderada) em uma imagem de referência não filtrada e em uma imagem de predição temporária de acordo com uma distância entre uma região de referência R e um pixel de predição de objeto, para derivar uma imagem de predição (imagem de predição corrigida) Pred obtida pela correção da imagem de predição temporária. Deve-se notar que em alguns modos de predição intraquadro (por exemplo, predição plana, predição DC, etc.), a imagem de predição temporária pode não ser necessariamente corrigida pela porção de correção de imagem de predição 3105, e uma saída da porção de predição 3104 é considerada diretamente como a imagem de predição.
[00115] A porção de quantização inversa/transformada inversa 311 quantifica inversamente o coeficiente de quantização e transformada in- serido como entrada a partir da porção de decodificação de entropia 301 para obter um coeficiente de transformada. O coeficiente de quantiza- ção e transformada é um coeficiente obtido mediante execução de transformada e quantização de frequência como transformada discreta do cosseno (DCT - "Discrete Sine Transform"), transformada discreta do seno (DST - "Discrete Sine Transform"), etc., no erro de predição no processamento de codificação. A porção de quantização inversa/trans- formada inversa 311 executa a transformada de frequência inversa como DCT inversa, DST inversa, etc., no coeficiente de transformada obtido para calcular o erro de predição. A porção de quantização in- versa/transformada inversa 311 fornece o erro de predição à porção de adição 312.
[00116] Para cada pixel, a porção de adição 312 adiciona a imagem de predição do bloco inserido como entrada a partir da porção de gera- ção de imagens de predição 308 ao erro de predição inserido como en- trada a partir da porção de quantização inversa/transformada inversa 311 para gerar uma imagem decodificada do bloco. A porção de adição 312 armazena a imagem decodificada do bloco na memória de imagens de referência 306 e fornece a imagem ao filtro de circuito 305.
Funções do dispositivo de codificação de imagens em movimento)
[00117] Serão descritos a seguir os componentes do dispositivo de codificação de imagens em movimento 11 de acordo com a presente modalidade. A Figura 15 é um diagrama de blocos que mostra compo- nentes do dispositivo de codificação de imagens em movimento 11 de acordo com essa modalidade. O dispositivo de codificação de imagens em movimento 11 é configurado para incluir: uma porção de geração de imagens de predição 101, uma porção de subtração 102, uma porção de transformada/quantização 103, uma porção de quantização in- versa/transformada inversa 105, uma porção de adição 106, um filtro de circuito 107, uma memória de parâmetros de predição (porção de arma- zenamento de parâmetros de predição, memória de quadros) 108, uma memória de imagens de referência (porção de armazenamento de ima- gens de referência, memória de quadros) 109, uma porção de determi- nação de parâmetros de codificação 110, uma porção de codificação de parâmetros 111 e uma porção de codificação de entropia 104.
[00118] A porção de geração de imagens de predição 101 gera uma imagem de predição de acordo com as regiões formadas pela divisão de cada quadro de cada imagem T, ou seja, de acordo com a CU. À porção de geração de imagens de predição 101 executa a mesma ação que a porção de geração de imagens de predição 308 descrita acima, e sua descrição é aqui omitida.
[00119] A porção de subtração 102 subtrai um valor de pixel da ima- gem de predição do bloco inserido como entrada a partir da porção de geração de imagens de predição 101 de um valor de pixel da imagem T para gerar um erro de predição. A porção de subtração 102 fornece o erro de predição à porção de transformada/quantização 103.
[00120] A porção de transformada/quantização 103 calcula um coe- ficiente de transformada que executa uma transformada de frequência no erro de predição inserido como entrada a partir da porção de subtra- ção 102 e deriva um coeficiente de quantização e transformada por meio de quantização. A porção de transformada/quantização 103 fornece o coeficiente de quantização e transformada à porção de codificação de entropia 104 e à porção de quantização inversa/transformada inversa
105.
[00121] A porção de quantização inversa/transformada inversa 105 é igual à porção de quantização inversa/transformada inversa 311 (Fi- gura 7) no dispositivo de decodificação de imagens em movimento 31 e, portanto, sua descrição é aqui omitida. O erro de predição calculado é inserido como entrada na porção de adição 106.
[00122] Na porção de codificação de entropia 104, o coeficiente de quantização e transformada é inserido como entrada a partir da porção de transformada/quantização 103, e os parâmetros de codificação são inseridos como entrada a partir da porção de codificação de parâmetros
111. Os parâmetros de codificação incluem, por exemplo, códigos como um índice de imagem de referência refldxLX, um índice de vetor de pre- dição mvp LX idx, um vetor de diferença mvdLX, um modo de exatidão de vetor de movimento amvr mode, um modo de predição predMode e um índice de fusão merge idx.
[00123] A porção de codificação de entropia 104 executa a codifica- ção de entropia nas informações de divisão, nos parâmetros de predi- ção, no coeficiente de quantização e transformada, etc., para gerar um fluxo codificado Te, e fornece a entropia codificada.
[00124] A porção de codificação de parâmetros 111 inclui uma por- ção de codificação de cabeçalho, uma porção de codificação de infor- mações de CT, uma porção de codificação de CU (porção de codifica- ção de modo de predição), uma porção de codificação de parâmetros de predição interquadro e uma porção de codificação de parâmetros de predição intraquadro todas as quais não mostradas na Figura 14. A por- ção de codificação de CU inclui adicionalmente uma porção de codifica- ção de TU.
Funções da porção de codificação de parâmetros de predição intraqua- dro 113)
[00125] A porção de codificação de parâmetros de predição intraqua- dro 113 deriva uma forma de codificação (por exemplo, mpm idx, mpm remainder, etc.) de acordo com um modo de predição intraquadro IntraPredMode inserido como entrada a partir da porção de determina- ção de parâmetros de codificação 110. A porção de codificação de pa- râmetros de predição intraquadro 113 inclui os mesmos componentes que aqueles que fazem com que a porção de decodificação de parâme- tros de predição intraquadro 304 derive um parâmetro de predição in- traquadro.
[00126] A Figura 16 é um diagrama esquemático mostrando compo- nentes de uma porção de codificação de parâmetros de predição intra- quadro. A Figura 16 mostra os componentes da porção de codificação de parâmetros de predição intraquadro 113 da porção de codificação de parâmetros 111. A porção de codificação de parâmetros de predição intraquadro 113 é configurada para incluir: uma porção de controle de codificação de parâmetros 1131, uma porção de derivação de parâme- tros de predição intraquadro de luminância 1132 e uma porção de deri- vação de parâmetros de predição intraquadro de crominância 1133.
[00127] O modo de predição de luminância IntraPredModeY e o modo de predição de crominância IntraPredModeC são inseridos como entrada na porção de controle de codificação de parâmetros 1131 a par- tir da porção de determinação de parâmetros de codificação 110. A por- ção de controle de codificação de parâmetros 1131 determina um indi- cador intra luma mpm flag com referência à lista de candidatos a MPM mpmCandList[] da porção de derivação de lista de candidatos 30421. Em seguida, o indicador intra luma mpm flag e o modo IntraPredMo- deY são fornecidos à porção de derivação de parâmetros de predição intraquadro de luminância 1132. Adicionalmente, o modo IntraPredMo- deC é fornecido à porção de derivação de parâmetros de predição in- traquadro de crominância 1133.
[00128] A porção de derivação de parâmetros de predição intraqua- dro de luminância 1132 é configurada para incluir: uma porção de deri- vação de lista de candidatos a MPM 30421 (uma porção de derivação de lista de candidatos), uma porção de derivação de parâmetros MPM 11322 e uma porção de derivação de parâmetros não MPM 11323 (uma porção de codificação e uma porção de derivação).
[00129] A porção de derivação de lista de candidatos a MPM 30421 deriva a lista de candidatos a MPM mpmCandList[] com referência ao modo de predição intraquadro de blocos contíguos armazenados na me- mória de parâmetros de predição 108. A porção de derivação de parâme- tros MPM 11322 deriva o índice mpm idx a partir de IntraPredModeY e mpmCandList[] se o indicador intra luma mpm flag for 1 e fornece o ín- dice derivado à porção de codificação de entropia 104. A porção de deri- vação de parâmetros não MPM 11323 deriva mpm remainder a partir de IntraPredModeY e mpmCandLList[] se intra luma mpm flag for 0, e fornece o resultado à porção de codificação de entropia 104.
[00130] A porção de derivação de parâmetros de predição intraqua- dro de crominância 1133 deriva o modo intra chroma pred mode a partir de IntraPredModeY e IntraPredModeC, e fornece o resultado.
[00131] Para cada pixel, a porção de adição 106 adiciona o valor de pixel da imagem de predição do bloco inserido como entrada a partir da porção de geração de imagens de predição 101 ao erro de predição inserido como entrada a partir da porção de quantização inversa/trans- formada inversa 105 para gerar uma imagem decodificada. A porção de adição 106 armazena a imagem decodificada gerada na memória de imagens de referência 109.
[00132] —Ofiltrode circuito 107 executa uma filtragem de desbloqueio, SAO e ALF na imagem decodificada gerada pela porção de adição 106. Deve-se notar que o filtro de circuito 107 não inclui necessariamente os três filtros acima, por exemplo, o filtro de circuito 107 pode incluir apenas um filtro de desbloqueio.
[00133] Amemóriade parâmetros de predição 108 armazena os pa- râmetros de predição gerados pela porção de determinação de parâme- tros de codificação 110 em uma posição predefinida para cada imagem de objeto e cada CU.
[00134] A memória de imagens de referência 109 armazena a ima- gem decodificada gerada pelo filtro de circuito 107 em uma posição pre- definida para cada imagem de objeto e cada CU.
[00135] A porção de determinação de parâmetros de codificação 110 seleciona um dentre uma pluralidade de conjuntos de parâmetros de codificação. Os parâmetros de codificação se referem às informações de divisão de QT, BT ou TT anteriormente mencionadas, parâmetros de predição ou parâmetros gerados em associação com os mesmos e que servem como objetos de codificação. A porção de geração de imagens de predição 101 usa esses parâmetros de codificação para gerar a ima- gem de predição.
[00136] A porção de determinação de parâmetros de codificação 110 calcula um valor de custo de RD ("Rate-Distortion", ou taxa-distorção)) que denota um tamanho de informação e o erro de codificação para cada um dentre a pluralidade de conjuntos. O valor de custo de RD é, por exemplo, a soma de uma quantidade de códigos e um valor obtido multiplicando-se um erro quadrático por um coeficiente A. A porção de determinação de parâmetros de codificação 110 seleciona um conjunto de parâmetros de codificação que tem o menor valor de custo calculado. Portanto, a porção de codificação de entropia 104 usa o conjunto sele- cionado de parâmetros de codificação como o fluxo codificado Te e for- nece o mesmo. A porção de determinação de parâmetros de codificação 110 armazena os parâmetros de codificação determinados na memória de parâmetros de predição 108.
[00137] Deve-se notar que uma parte do dispositivo de codificação de imagens em movimento 11 e do dispositivo de decodificação de ima- gens em movimento 31 na modalidade acima, por exemplo, a porção de decodificação de entropia 301, a porção de decodificação de parâme- tros 302, o filtro de circuito 305, a porção de geração de imagens de predição 308, a porção de quantização inversa/transformada inversa
311, a porção de adição 312, a porção de geração de imagens de pre- dição 101, a porção de subtração 102, a porção de transformada/quan- tização 103, a porção de codificação de entropia 104, a porção de quan- tização inversa/transformada inversa 105, o filtro de circuito 107, a por- ção de determinação de parâmetros de codificação 110 e a porção de codificação de parâmetros 111, pode ser implementada por meio de um computador.
Nesse caso, ela pode ser implementada mediante a gra- vação de um programa para implementar a função de controle em uma mídia de gravação legível por computador e fazer com que um sistema de computador leia e execute o programa gravado na mídia de grava- ção.
Deve-se notar que o "sistema de computador" descrito se refere a um sistema de computador incorporado em qualquer um dentre o dis- positivo de codificação de imagens em movimento 11 e o dispositivo de decodificação de imagens em movimento 31 e que inclui um sistema operacional (OS) e hardware como um aparelho periférico.
Além disso, o termo "mídia de gravação legível por computador" se refere a uma mídia removível, como um disco flexível, um disco óptico-magnético, uma ROM e um CD-ROM, e um dispositivo de armazenamento, como um disco rígido instalado no sistema de computador.
Além disso, a "míi- dia de gravação legível por computador" pode incluir também uma mídia de gravação para armazenar dinamicamente um programa por um curto período de tempo, como uma linha de comunicação usada para trans- mitir um programa por meio de uma rede como a Internet ou uma linha de comunicação como uma linha telefônica, e pode incluir também uma mídia de gravação para armazenar um programa por um período fixo de tempo, como uma memória volátil no sistema de computador para, nesse caso, funcionar como um servidor ou um cliente.
Além disso, o programa descrito acima pode ser um programa para implementar uma parte das funções descritas acima e pode também ser um programa capaz de implementar as funções descritas acima em combinação com um programa já gravado no sistema de computador.
[00138] Além disso, o dispositivo de codificação de imagens em mo- vimento 11 e o dispositivo de decodificação de imagens em movimento 31 na modalidade acima podem ser parcial ou completamente imple- mentados como circuitos integrados, como circuitos de integração em grande escala (LSI - "Large Scale Integration"). Os blocos funcionais do dispositivo de codificação de imagens em movimento 11 e do dispositivo de decodificação de imagens em movimento 31 podem ser implemen- tados individualmente como processadores ou podem ser parcial ou completamente integrados em um processador. Além disso, o método de integração de circuitos não se limita a LSI, e os circuitos integrados podem ser implementados como circuitos dedicados ou um processador de propósito geral. Além disso, com os avanços na tecnologia de semi- condutores, pode surgir uma tecnologia de integração de circuitos pela qual a LSI é substituída e, portanto, um circuito integrado baseado nessa tecnologia também poderá ser utilizado.
[00139] “Uma modalidade da presente invenção foi descrita acima em detalhes com referência aos desenhos em anexo; entretanto, a configu- ração específica não se limita à modalidade acima, e podem ser feitas várias emendas a um design sem que se afaste do escopo da essência da presente invenção. Exemplos de aplicação)
[00140] O dispositivo de codificação de imagens em movimento 11 e o dispositivo de decodificação de imagens em movimento 31 descritos acima podem ser usados em um estado em que são montados em vá- rios dispositivos para transmitir, receber, gravar e reproduzir uma ima- gem em movimento. Deve-se notar que a imagem em movimento pode ser uma imagem em movimento natural capturada por uma câmera de vídeo ou similar, ou pode ser uma imagem em movimento artificial (in- cluindo geração de caracteres (CG) e interface gráfica de usuário (GUI))
gerada por meio de um computador ou similar.
[00141] A Figura 2 é um diagrama mostrando componentes de um dispositivo de transmissão equipado com um dispositivo de codificação de imagens em movimento de acordo com esta modalidade e compo- nentes de um dispositivo de recepção equipado com um dispositivo de decodificação de imagens em movimento de acordo com esta modali- dade. Primeiramente, com referência à Figura 2, é fornecida uma des- crição de que o dispositivo de codificação de imagens em movimento 11 eo dispositivo de decodificação de imagens em movimento 31 des- critos acima podem ser usados para transmitir e receber a imagem em movimento.
[00142] A Figura 2(a) é um diagrama de blocos que mostra compo- nentes de um dispositivo de transmissão PROD A equipado com o dis- positivo de codificação de imagens em movimento 11. Conforme mos- trado na Figura 2(a), o dispositivo de transmissão PROD A inclui: uma porção de codificação PROD A1 para capturar dados codificados me- diante a codificação da imagem em movimento, uma porção de modu- lação PROD A?2 para capturar um sinal de modulação com o uso dos dados codificados capturados pela porção de codificação PROD A1 para modular uma portadora e uma porção de transmissão PROD A3 para transmitir o sinal de modulação capturado pela porção de modula- ção PROD A2. O dispositivo de codificação de imagens em movimento 11 descrito acima é usado como a porção de codificação PROD A1.
[00143] “Como uma fonte para fornecer a imagem em movimento in- serida como entrada na porção de codificação PROD AJ1, o dispositivo de transmissão PROD A pode incluir adicionalmente: uma câmera de vídeo PROD A4 para capturar uma imagem em movimento, uma mídia de gravação PROD A5 na qual a imagem em movimento é gravada, um terminal de entrada PROD AG6 para inserir uma imagem em movimento a partir do meio externo e uma porção de processamento de imagens
PROD A7 para gerar ou processar uma imagem. A Figura 2(a) mostra de modo exemplificador que o dispositivo de transmissão PROD A in- clui todos esses componentes, mas uma parte desses componentes pode ser omitida.
[00144] Deve-se notar que a mídia de gravação PROD AB5 pode ser uma mídia na qual uma imagem em movimento não codificada é gra- vada, ou pode ser uma mídia na qual uma imagem em movimento codi- ficada é gravada com o uso de um método de codificação para gravação diferente do método de codificação para transmissão. Neste último caso, uma porção de decodificação (não mostrada) para decodificar, de acordo com o método de codificação para gravação, os dados codifica- dos lidos a partir da mídia de gravação PROD AB5 pode ser fornecida entre a mídia de gravação PROD A5 e a porção de codificação PROD Af1.
[00145] A Figura 2(b) é um diagrama de blocos que mostra compo- nentes de um dispositivo de recepção PROD B equipado com o dispo- sitivo de decodificação de imagens em movimento 31. Conforme mos- trado na Figura 2(b), o dispositivo de recepção PROD B inclui: uma por- ção de recepção PROD B1 para receber o sinal de modulação, uma porção de demodulação PROD B2 para capturar os dados codificados mediante a demodulação do sinal de modulação recebido pela porção de recepção PROD B1 e uma porção de decodificação PROD B3 para capturar a imagem em movimento mediante a decodificação dos dados codificados capturados pela porção de demodulação PROD B2. O dis- positivo de decodificação de imagens em movimento 31 descrito acima é usado como a porção de decodificação PROD B3.
[00146] O dispositivo de recepção PROD B serve como um destino de fornecimento da imagem em movimento fornecida pela porção de decodificação PROD B3 e pode incluir adicionalmente uma tela PROD B4 para exibir a imagem em movimento, uma mídia de gravação
PROD B5 para gravar a imagem em movimento e um terminal de saída PROD B6 para fornecer a imagem em movimento ao meio externo. À Figura 2(b) mostra de modo exemplificador que o dispositivo de recep- ção PROD B inclui todos esses componentes, mas uma parte desses componentes pode ser omitida.
[00147] Deve-se notar que a mídia de gravação PROD BB5 pode ser uma mídia na qual uma imagem em movimento não codificada é gra- vada, ou pode ser uma mídia na qual uma imagem em movimento codi- ficada é gravada com o uso de um método de codificação para gravação diferente do método de codificação para transmissão. Neste último caso, uma porção de codificação (não mostrada) para codificar, de acordo com o método de codificação para gravar, a imagem em movi- mento capturada a partir da porção de decodificação PROD B3 pode ser fornecida entre a porção de decodificação PROD B3 e a mídia de gravação PROD B5.
[00148] Deve-se notar que um meio de transmissão para transmitir o sinal de modulação pode ser um meio sem fio ou um meio com fio. Além disso, um esquema de transmissão para transmitir o sinal de modulação pode ser por radiodifusão (aqui chamado de um esquema de transmis- são cujo destino da transmissão não é determinado previamente) ou por comunicação (aqui chamado de esquema de transmissão cujo destino da transmissão é determinado previamente). Ou seja, a transmissão do sinal de modulação pode ser implementada por meio de qualquer uma dentre transmissão sem fio, transmissão com fio, comunicação sem fio e comunicação com fio.
[00149] Por exemplo, uma estação de transmissão por radiodifusão (aparelho de transmissão por radiodifusão e similar)/estação de recep- ção (receptor de televisão e similar) para transmissão por radiodifusão de ondas de televisão digital terrestre é um exemplo do dispositivo de transmissão PROD A/dispositivo de recepção PROD B que transmite ou recebe o sinal de modulação por meio de radiodifusão sem fio. Além disso, uma estação de transmissão por radiodifusão (aparelho de trans- missão por radiodifusão e similar)/estação de recepção (receptor de te- levisão e similar) para transmissão por radiodifusão de televisão a cabo é um exemplo do dispositivo de transmissão PROD A/dispositivo de re- cepção PROD B que transmite ou recebe o sinal de modulação por meio de radiodifusão com fio.
[00150] Adicionalmente, um servidor (estação de trabalho e simi- lar)/cliente (receptor de televisão, computador pessoal, smartphone e similares) utilizando um serviço de vídeo sob demanda (VOD - "Video On Demand") e um serviço de compartilhamento de imagens em movi- mento na Internet é um exemplo do dispositivo de transmissão PROD A/dispositivo de recepção PROD B que transmite ou recebe o sinal de modulação por meio de comunicação (em geral, um meio de transmissão sem fio ou com fio é usado em uma LAN, e um meio de transmissão com fio é usado em uma WAN). Aqui, o computador pes- soal inclui um PC de mesa, um PC tipo laptop e um PC tipo tablet. Além disso, o smartphone inclui também um terminal de telefone móvel mul- tifuncional.
[00151] Deve-se notar que o cliente que usa o serviço de comparti- lhamento de imagens em movimento tem uma função para decodificar os dados codificados transferidos por download do servidor e exibir tais dados em uma tela, e uma função para codificar uma imagem em movi- mento capturada por uma câmera de vídeo e transferir por upload a dita imagem para o servidor. Ou seja, o cliente que usa o serviço de com- partilhamento de imagens em movimento funciona tanto como o dispo- sitivo de transmissão PROD A como o dispositivo de recepção PROD B.
[00152] A seguir, com referência à Figura 3, é fornecida uma descri- ção desse dispositivo de codificação de imagens em movimento 11 e do dispositivo de decodificação de imagens em movimento 31 descritos acima para gravar e reproduzir a imagem em movimento. A Figura 3 é um diagrama mostrando componentes de um dispositivo de gravação equipado com um dispositivo de codificação de imagens em movimento de acordo com esta modalidade e um dispositivo de reprodução equi- pado com um dispositivo de decodificação de imagens em movimento de acordo com esta modalidade.
[00153] A Figura 3(a) é um diagrama de blocos que mostra compo- nentes de um dispositivo de gravação PROD C equipado com o dispo- sitivo de codificação de imagens em movimento 11 descrito acima. Con- forme mostrado na Figura 3(a), o dispositivo de gravação PROD C in- clui: uma porção de codificação PROD C1 para capturar dados codifi- cados mediante a codificação da imagem em movimento e uma porção de gravação PROD C2 para gravar os dados codificados capturados pela porção de codificação PROD C1 em uma mídia de gravação PROD M. O dispositivo de codificação de imagens em movimento 11 descrito acima é usado como a porção de codificação PROD C1.
[00154] Deve-se notar que a mídia de gravação PROD M pode ser (1) uma mídia de gravação incorporada no dispositivo de gravação PROD C, como uma unidade de disco rígido (HDD - "Hard Disk Drive") e uma unidade de estado sólido (SSD - "Solid State Drive"), pode ser também (2) uma mídia de gravação conectada ao dispositivo de grava- ção PROD C como um cartão de memória SD e uma memória flash de barramento serial universal (USB - "Universal Serial Bus"), e pode ser também (3) uma mídia de gravação carregada em um dispositivo de acionamento (não mostrado) incorporado no dispositivo de gravação PROD C, como um disco versátil digital (DVD, marca registrada) ou um disco Blu-ray (BD, marca registrada).
[00155] Além disso, como uma fonte para fornecer a imagem em mo- vimento inserida como entrada na porção de codificação PROD C1, o dispositivo de gravação PROD C pode incluir adicionalmente: uma câ- mera de vídeo PROD C3 para capturar uma imagem em movimento, um terminal de entrada PROD C4 para inserir como entrada uma ima- gem em movimento a partir do meio externo, uma porção de recepção PROD C5 para receber uma imagem em movimento, e uma porção de processamento de imagens PROD C6 para gerar ou processar uma imagem. A Figura 3(a) mostra de modo exemplificador que o dispositivo de gravação PROD C inclui todos esses componentes, mas uma parte desses componentes pode ser omitida.
[00156] Deve-se notar que a porção de recepção PROD C5 pode receber uma imagem em movimento não codificada e pode também re- ceber dados codificados que são codificados com o uso de um método de codificação para transmissão diferente do método de codificação para gravação. Neste último caso, uma porção de decodificação para transmissão (não mostrada) para decodificar os dados codificados que são codificados com o uso do método de codificação para transmissão pode ser fornecida entre a porção de recepção PROD C5 e a porção de codificação PROD C1.
[00157] Exemplos de tal dispositivo de gravação PROD C incluem: um gravador de DVD, um gravador de BD, um gravador de disco rígido (HDD), etc. (neste caso, o terminal de entrada PROD C4 ou a porção de recepção PROD C5 é uma fonte principal para fornecer a imagem em movimento). Além disso, uma câmera de vídeo portátil (neste caso, a câmera de vídeo PROD C3 é a fonte principal para fornecer a imagem em movimento), um computador pessoal (neste caso, a porção de re- cepção PROD C5 ou a porção de processamento de imagens PROD C6 é a fonte principal para fornecer a imagem em movimento) e um smartphone (neste caso, a câmera de vídeo PROD C3 ou a porção de recepção PROD C5 é a fonte principal para fornecer a imagem em movimento) também são incluídos nos exemplos de tal dispositivo de gravação PROD C.
[00158] A Figura 3(b) é um diagrama de blocos que mostra compo- nentes de um dispositivo de reprodução PROD D equipado com o dis- positivo de decodificação de imagens em movimento 31 descrito acima. Conforme mostrado na Figura 3(b), o dispositivo de reprodução PROD D inclui: uma porção de leitura PROD D1 para ler os dados co- dificados que foram gravados na mídia de gravação PROD M e uma porção de decodificação PROD D2 para capturar a imagem em movi- mento que decodifica os dados codificados lidos pela porção de leitura PROD D1. O dispositivo de decodificação de imagens em movimento 31 descrito acima é usado como a porção de decodificação PROD D2.
[00159] Deve-se notar que a mídia de gravação PROD M pode ser (1) uma mídia de gravação incorporada no dispositivo de reprodução PROD D, como uma unidade de disco rígido (HDD) e uma unidade de SSD, pode ser também (2) uma mídia de gravação conectada ao dispo- sitivo de reprodução PROD D, como um cartão de memória SD e uma memória flash USB, e pode ser também (3) uma mídia de gravação car- regada em um dispositivo de acionamento (não mostrado) incorporado no dispositivo de reprodução PROD D, como um DVD e um BD.
[00160] Além disso, como um destino de fornecimento da imagem em movimento fornecida pela porção de decodificação PROD D?2, o dis- positivo de reprodução PROD D pode incluir adicionalmente: uma tela PROD D3 para exibir a imagem em movimento, um terminal de saída PROD DA4 para fornecer a imagem em movimento para o meio externo, e uma porção de transmissão PROD DB5 para transmitir a imagem em movimento. A Figura 3(b) mostra de modo exemplificador que o dispo- sitivo reprodutor PROD D inclui todos esses componentes, mas uma parte desses componentes pode ser omitida.
[00161] Deve-se notar que a porção de transmissão PROD D5 pode transmitir uma imagem em movimento não codificada e pode também transmitir dados codificados que são codificados com o uso de um mé- todo de codificação para transmissão diferente do método de codifica- ção para gravação. Neste último caso, uma porção de codificação (não mostrada) para codificar a imagem em movimento com o uso do método de codificação para transmissão pode ser fornecida entre a porção de decodificação PROD D2 e a porção de transmissão PROD D5.
[00162] Exemplos de tal dispositivo de reprodução PROD D incluem um aparelho de DVD, um aparelho de BD, um aparelho de HDD e simi- lares (neste caso, o terminal de saída PROD D4 conectado a um re- ceptor de televisão e similares é um destino principal de fornecimento da imagem em movimento). Além disso, um receptor de televisão (neste caso, a tela PROD D3 é o destino principal de fornecimento da imagem em movimento), uma sinalização digital (também chamada de sinaliza- ção eletrônica ou quadro de avisos eletrônico, e a tela PROD D3 ou a porção de transmissão PROD D5 é o destino principal de fornecimento da imagem em movimento), um PC de mesa (neste caso, o terminal de saída PROD DA4 ou a porção de transmissão PROD D5 é o destino principal de fornecimento da imagem em movimento), um PC tipo laptop ou um PC tipo tablet (neste caso, a tela PROD D3 ou a porção de trans- missão PROD D5 é o destino principal de fornecimento da imagem em movimento), um smartphone (neste caso, a teta PROD D3 ou a porção de transmissão PROD D5 é o destino principal de fornecimento da ima- gem em movimento) e similares também são exemplos de tal dispositivo de reprodução PROD D. Modo de predição intraquadro de crominância)
[00163] A seguir, será descrita a predição de CCLM com referência às Figuras 11 a 14.
[00164] A porção de decodificação de parâmetros de predição intra- quadro 304 se refere ao modo de predição de luminância IntraPredMo- deY, ao parâmetro intra chroma pred mode, e à tabela da Figura 11(b)
quando é derivado o modo de predição de crominância IntraPredModeC descrito acima. A Figura 11(b) ilustra o método de derivação para Intra- PredModeC. Se intra chroma pred mode for O a 3 e 7, então IntraPred- ModeC é derivado dependendo do valor de IntraPredModeY. Por exem- plo, se intra chroma pred mode for O e IntraPredModeY for O, então In- traPredModeC será 66. Além disso, se intra chroma pred mode for 3 e IntraPredModeY for 50, então IntraPredModeC será 1. Deve-se notar que os valores de IntraPredModeY e IntraPredModeC representam o modo de predição intraquadro da Figura 6. Se intra chroma pred mode for 4 a 6, então IntraPredModeC é derivado sem depender do valor de Intra- PredModeY. intra chroma pred mode = 81 (INTRA LT CCLM), 82 (INTRA L CCLM) e 83 (INTRA T CCLM) são, respectivamente, um modo no qual uma imagem de predição de uma imagem de crominância é gerada com base na imagem de luminância dos blocos contíguos su- perior e esquerdo, um modo no qual uma imagem de predição de uma imagem de crominância é gerada com base na imagem de luminância do bloco contíguo esquerdo, e um modo no qual uma imagem de predi- ção de uma imagem de crominância é gerada com base na imagem de luminância do bloco contíguo superior.
[00165] Será descrita a seguir a predição de CCLM. Nos desenhos, blocos de objeto e blocos contíguos da imagem de luminância são re- presentados por pY[][] e pRefY[][]. O bloco de objeto tem uma largura de bW e uma altura de bH.
[00166] A porção de predição de CCLM 31044 (a porção de configu- ração de imagem de referência não filtrada 3102) deriva os parâmetros de predição de CCLM com o uso da imagem contígua de luminância pRefYT[][] das Figuras 13(a) a 13(c) e a imagem contígua de crominância pRefC[][] da Figura 13(e) como regiões de referência. A porção de pre- dição de CCLM 31044 deriva uma imagem de predição de crominância com o uso da imagem de objeto de luminância pRefl].
[00167] A Figura 13 é um diagrama ilustrando pixels referidos como em derivação de parâmetros de predição de CCLM de acordo com uma modalidade da presente invenção. A porção de predição de CCLM 31044 deriva parâmetros de predição de CCLM com o uso de valores de pixel dos blocos contíguos superior e esquerdo do bloco de objeto se in- tra chroma pred mode for 81 (INTRA LT CCLM), conforme mostrado na Figura 13(a), deriva os parâmetros de predição de CCLM com o uso de valores de pixel do bloco contíguo esquerdo se intra chroma pred mode for 82 (INTRA L CCLM), conforme mostrado na Figura 13(b), e deriva os parâmetros de predição de CCLM com o uso de valores de pixel do bloco contíguo superior se intra chroma pred mode for 83 (INTRA T- CCLM), conforme mostrado na Figura 13(c). O tamanho das regiões pode ser da forma descrita a seguir. Na Figura 13(a), o lado superior do bloco de objeto tem uma largura bW e uma altura refH (reftll > 1) e o lado esquerdo do bloco de objeto tem uma altura bH e uma largura refW (refW > 1). Na Figura 13(b), a altura é 2*bH, e a largura é refW. Na Figura 13(c), a largura é 2*bW, e a altura é refH. Para implementar o processamento de redução de taxa de amostragem, refW e refH podem ser ajustadas para um valor maior que 1 correlacionando-se o número de pares de coeficiente/atraso ("taps") de um filtro de redução de taxa de amostragem. Além disso, na Figura 13(e), o bloco de objeto e o bloco contíguo da imagem de crominância (Cb, Cr) são representados por PCI e pRefC[][]. O bloco de objeto tem uma largura bWC e uma altura bHC.
Porção de predição de CCLM)
[00168] A porção de predição de CCLM 31044 é descrita com base na Figura 11. A Figura 11 é um diagrama de blocos que mostra um exemplo dos componentes da porção de predição de CCLM 31044. À Figura 11(a) é um diagrama de blocos mostrando um exemplo de com- ponentes de uma porção de predição de CCLM de acordo com uma modalidade da presente invenção, e a Figura 11(b) é um diagrama mos- trando um método de derivação de IntraPredModeC. A porção de pre- dição de CCLM 31044 inclui: uma porção de redução de taxa de amos- tragem 310441, uma porção de derivação de parâmetros de predição de CCLM (uma porção de derivação de parâmetros) 310442 e uma por- ção de filtro de predição de CCLM 310443.
[00169] A porção de redução de taxa de amostragem 310441 reduz a taxa de amostragem de pRefYT[][] e pY[][] para corresponder ao tama- nho da imagem de crominância. Se um formato de crominância for 4:2:0, então os números de pixels horizontais e verticais de pRefY[][] e pY[[] são amostrados como 2:1, e os resultados são armazenados em pRe- fDsY[][] e pDsY[][] da Figura 13(d). Deve-se notar que bW/2 e bH/2 são, respectivamente, iguais a bWC e bHC. Se um formato de crominância for 4:2:2, então os números de pixels horizontais de pRefY[][] e pY[I[] são amostrados como 2:1, e os resultados são armazenados em pRe- fDsY[] e pDsY[][]]. Se um formato de crominância for 4:4:4, então ne- nhuma amostragem é implementada, e pRefY[][] e pY[][] são armazena- dos em pRefDsYT][] e pDsY[][]. Um exemplo de amostragem é represen- tado pelas fórmulas a seguir.
pDsY = (pY[2* x- 1][2* y] + pY[2 * x- 1][2* y + 1) + 2* pv[2 *xIl2*y j+2*pYl2*xI[2*y+1]+pY[2*x+1[2*y] + pY[2*x+1[2 *y+1)+4)>>3 pRefDsY = (pRefY[2 * x - 1)[2 * y] + pRefY[2* x - 11[2* y +1] + 2* pRefY[2 * x][2 * y] + 2* pRefY[2 * x][2* y + 1] + pRefY[2 * x + 11[2 *y] + pRefV[2* x + 1]|[2*y +1]+4)>>3
[00170] A porção de filtro de predição de CCLM 310443 considera uma imagem de referência refSamples[][]] como um sinal de entrada e fornece uma imagem de predição predSamples|[][] com o uso dos parâ- metros de predição de CCLM (a, b).
predSamples|[][] = ((a * refSamples[][]) >> shiftA) + b (CCLM
-1)
[00171] Aqui, refSamples é pDsY da Figura 13(d); (a, b) são os pa- râmetros de predição de CCLM derivados por meio da porção de deri- vação de parâmetros de predição de CCLM 310442; predSamples[][] é a imagem de predição de crominância (pC da Figura 13(e)). Deve-se notar que (a, b) são derivados para Cb e Cr, respectivamente. Adicio- nalmente, shiftA é um número de deslocamento normalizado que repre- senta a precisão do valor de a, e quando o coeficiente angular da preci- são decimal é ajustado para af, a = af << shiftA. Por exemplo, shiftA =
16.
[00172] A Figura 12 é um diagrama de blocos mostrando um exem- plo de componentes de uma porção de filtro de predição de CCLM de acordo com uma modalidade da presente invenção. A Figura 12 mostra os componentes da porção de filtro de predição de CCLM 310443 que prevê a crominância de acordo com a luminância. Conforme mostrado na Figura 12, a porção de filtro de predição de CCLM 310443 tem uma porção de predição linear 310444. A porção de predição linear 310444 considera refSamples[][] como um sinal de entrada e fornece predSam- ples[][] com o uso dos parâmetros de predição de CCLM (a, b).
[00173] Mais especificamente, a porção de predição linear 310444 deriva a crominância Cb ou Cr de acordo com a luminância Y por meio da seguinte fórmula na qual os parâmetros de predição de CCLM (a, b) são usados e fornece predSamples[][] com o uso dessa crominância Cb ou Cr. Cb (ou Cr) = aY + b
[00174] A porção de derivação de parâmetros de predição de CCLM 310442 deriva os parâmetros de predição de CCLM com o uso do bloco contíguo pRefY (pRefDsYT][] da Figura 13(d)) da luminância e do bloco contíguo pRefC[][] (pRefC[][] da Figura 13(e)) da crominância, com taxa de amostragem reduzida, como sinais de entrada. A porção de deriva- ção de parâmetros de predição de CCLM 310442 fornece os parâmetros de predição de CCLM derivados (a, b) à porção de filtro de predição de CCLM 310443. Porção de derivação de parâmetros de predição de CCLM)
[00175] A porção de derivação de parâmetros de predição de CCLM 310442 deriva os parâmetros de predição de CCLM (a, b) no caso em que um bloco de predição predSamples[][] do bloco de objeto é linear- mente previsto de acordo com o bloco de referência refSamples|[][].
[00176] Naderivação dos parâmetros de predição de CCLM (a, b), a porção de derivação de parâmetros de predição de CCLM 310442 de- riva um ponto (x1, y1) em que o valor de luminância Y é máximo (Y MAX) e um ponto (x2, y2) em que o valor de luminância Y é mínimo (Y MIN) a partir de um grupo de um bloco contíguo (valor de luminância Y, valor de crominância C). Em seguida, os valores de pixel de (x1, y1) e de (x2, y2) em pRefC correspondendo a (x1, y1) e (x2, y2) em pRe- fDsY são respectivamente ajustados para C MAX (ou C Y MAX) e C MIN (ou C Y MIN). Então, conforme mostrado na Figura 14, obtém- se uma linha reta que conecta (Y MAX, C MAX) e (Y MIN, C MIN)em um gráfico que usa Y e C como os eixos x e y, respectivamente. Os parâmetros de predição de CCLM (a, b) para essa linha reta podem ser derivados com o uso da fórmula abaixo.
a=(C MAX-C MINY(Y MAX-Y MIN) b=C MIN-(a*Y MIN) Se o item (a, b) for usado, então o deslocamento shiftA da fórmula (CCLM - 1) = O.
[00177] Deve-se notar que o valor de diferença de luminância (diff) e o valor de diferença de crominância (diffC), no caso de cálculo do parâà- metro a, usam um valor de diferença entre um valor máximo Y MAX da luminância e um valor mínimo Y MIN da luminância e um valor de dife- rença entre um valor máximo C MAX da crominância e um valor mínimo C MIN da crominância, mas não se limitam a isso. Deve-se notar que no caso de cálculo do parâmetro b, Y MIN e C MIN são usados como valores representativos da luminância e da crominância necessárias, mas os valores representativos não se limitam a esses. Esses valores são comuns em todas as modalidades do presente relatório descritivo. Por exemplo, o valor também pode ser conforme mostrado abaixo.
b=C MAX -(a*Y MAX)
[00178] Além disso, a fórmula pode também ser da forma descrita a seguir.
b=C AVE -(a*Y AVE)
[00179] Aqui, C AVE e Y AVE são, respectivamente, a média da crominância e a média da luminância.
[00180] Aqui, se a crominância for Cb, então (C MAX, C MIN) serão os valores de pixel de (x1, y1) e (x2, y2) do bloco contíguo pRefCbl[][] de Cb, e se a crominância for Cr, então (C MAX, C MIN) serão os valores de pixel de (x1, y1) e (x2, y2) do bloco contíguo pRefCr[][] de Cr.
[00181] Deve-se notar que o custo de cálculo da divisão é alto; por- tanto, os parâmetros de predição de CCLM (a, b) são derivados com o uso de operações de números inteiros e consultas de tabela em vez de divisão. Especificamente, o cálculo é realizado utilizando-se a fórmula a seguir. Deve-se notar que, na modalidade a seguir, é usada uma tabela que exclui d = O em uma tabela inversa exigida pela divisão de 1/d (uma tabela na qual d = diff - 1 é definido como uma variável independente), mas certamente pode ser usada também uma tabela na qual d = diff é definido como uma variável independente.
ChromaDelta = C MAX - C MIN low = (ChrmaDelta * LMDivTableLowf[diff - 1] + 2415) >> 16 a = (ChromaDelta * LMDivTable[diff - 1] + low + add) >> shiftB b=C MIN-((a*Y MIN) >> shiftA) diff = (Y MAX -Y MIN + add) >> shiftB shiftB = (BitDepthC > 8)?(BitDepthC - 9):O add = (shiftB > 0)?1 << (shiftB - 1):O Se diff = O, então a = 0. Aqui, LMDivTableLow[] e LMDivTa- ble[] são tabelas (inversa, tabela inversa) usadas para executar a divi- são por referência às tabelas, e a derivação é realizada previamente com o uso da fórmula abaixo. Em outras palavras, o valor mantido na tabela é um valor derivado (um valor que corresponde ao inverso de um divisor). Ou seja, um valor de diferença e um valor derivado são manti- dos na tabela estabelecendo-se uma correspondência. Além disso, ShiftB é um valor de deslocamento usado para quantificar o domínio de valor de diff que difere dependendo de uma profundidade de bit como sendo 209 = 512 ou menor. Deve-se notar que se a profundidade de bit BitDepthC da imagem de crominância for igual a ou maior que 10 bits, a quantização é executada previamente, de modo que diff esteja dentro de uma faixa de O a 512. shiftB não se limita ao exposto acima. Por exemplo, uma constante especificada Q (por exemplo, 2, 6 ou similar) pode ser usada da forma descrita a seguir. O mesmo também é verda- deiro em outras modalidades.
sShiftB = BitDepthC - Q LMDivTable[diff - 1] = floor(2º16/diff) LMDivTableLow[diff - 1] = floor((2M16 * 2M16)/diff) — floor (2M16/diff) * 216 LMDivTable[diff - 1] representa uma parte inteira de (1/diff * 26). LMDivTableLow[diff - 1] representa 216 vezes a parte decimal de (1/diff * 2416). Além disso, a e b são 216 (2 elevado à 16º potência) vezes o valor da fórmula (C = a * Y + b) descrita acima.
[00182] Por exemplo, se diff = 7, então vale a relação abaixo.
LMDivTable[7 - 1] = floor(2M16/7) = 9362
LMDivTableLow[7 - 1] = floor((2M16 * 2M16)/7) - floor(2º16/7) * 2M6=18724
[00183] Se(a,b)derivados a partir da fórmula acima for usado, então o deslocamento shiftA da fórmula (CCLM - 1) é 16. Processamento específico na porção de predição de CCLM) Exemplo de processamento 1)
[00184] —“Namodalidade descrita acima, a porção de derivação de pa- râmetros de predição de CCLM 310442 deriva o parâmetro de predição de CCLM com o uso da tabela LMDivTable que representa a parte in- teira de 1/diff e da tabela LMDivTableLow que representa a parte deci- mal de 1/diff. Aqui, a tabela LMDivTable tem um valor máximo de 65536 (17 bits), e a tabela LMDivTableLow tem um valor máximo de 65140 (16 bits). O número de elementos de cada tabela é 512. Portanto, uma me- mória muito grande que tem o tamanho de 17 * 512 + 16 * 512 = 16896 (bits) é necessária para armazenar a tabela LMDivTable e a tabela LMDivTableLow.
[00185] “Nesse exemplo de processamento, a porção de derivação de parâmetros de predição de CCLM 310442 não deriva os parâmetros de predição de CCLM com o uso da tabela LMDivTableLow dentre as duas tabelas que representa a parte decimal de 1/diff. Ou seja, a porção de derivação de parâmetros de predição de CCLM 310442 deriva os parâmetros de predição de CCLM (a, b) com o uso da fórmula a seguir.
a = (ChromaDelta * LMDivTable[diff - 1] + add) >> shiftB b=C MIN-((a*Y MIN) >> shiftA) add = (shiftB > 0)?1 << (shiftB - 1):O
[00186] Os inventores confirmaram experimentalmente que a predi- ção de CCLM atinge um desempenho suficiente por meio apenas da tabela LMDivTable.
[00187] Como resultado, como a tabela LMDivTableLow não precisa ser armazenada, a quantidade de armazenamento necessária para o armazenamento de tabela pode ser reduzida aproximadamente pela metade. Além disso, a carga de processamento também pode ser miti- gada uma vez que não há necessidade de operações para derivar div.
[00188] Conforme descrito acima, a porção de predição de CCLM 31044 para esse processamento gera uma imagem de predição por meio da predição de CCLM e tem a porção de derivação de parâmetro de predição de CCLM 310442. Os parâmetros de predição de CCLM são derivados mediante a geração da tabela LMDivTable correspon- dente aos valores de diferença de uma pluralidade de pixels de referên- cia de luminância e aos valores derivados usados para derivar os parâà- metros de predição de CCLM de acordo com os valores de diferença. A tabela LMDivTable supracitada mantém uma parte inteira dos valores obtidos pela multiplicação do inverso dos valores de diferença por uma constante.
[00189] Assim, a quantidade de armazenamento necessária para uma tabela para a derivação de parâmetros de predição de CCLM pode ser reduzida. Exemplo de processamento 2)
[00190] Nesse exemplo de processamento, o número de bits (largura de bit) da tabela LMDivTable usado pela porção de derivação de parâà- metros de predição de CCLM 310442 é reduzido.
[00191] Na modalidade descrita acima, os valores da tabela LMDivTable são uma parte inteira de (1/diff) * 65536 e são, portanto, conforme exposto a seguir.
65536, 32768, 21845, 16384, 13107, 10922, 9362, 8192, 7281, 6553, 5957, 5461, 5041, 4681, 4369, 4096, 3855, 3640, 3449, 3276, 3120, 2978, 2849, 2730, 2621, 2520, 2427, 2340, 2259, 2184, 2114, 2048......
[00192] Nesse exemplo de processamento, a parte de mantissa (m)
de cada valor descrito acima é aproximada em uma representação ex- ponencial (m * 2ºexp) representada por P bits, e apenas a parte de man- tissa é mantida na tabela DivTableM. Por exemplo, se for presumido que P = 5, então os valores da tabela inversa são os seguintes.
16 * 2912, 16* 2M11,21* 2M10,16* 2010, 26*209,21* 209, 18 * 259, 16 * 209, 28 * 208, 26 * 208, 23 * 258, 21 * 2548, 20 * 208, 18 * 208, 17 * 208, 16 * 208, 30 * 207, 28 * 207, 27 * 2/7, 26 * 207, 24 * 207, 23 * 207, 22* 2/7, 21* 207,20 * 207, 20 * 2/7, 19 * 207, 18* 207, 18* 207, 17 * 2807, 17 * 2/7, 16* 2Y7......
[00193] Na tabela DivTableM, apenas as partes de mantissa desses valores são mantidas. Ou seja, DivTableM[] = (16, 16, 21, 16, 26, 21, 18, 16, 28, 26, 23, 21, 20, 18, 17, 16, 30, 28, 27, 26, 24, 23, 22, 21, 20, 20, 19, 18, 18, 17, 17,
16......)
[00194] — Portanto, na modalidade supracitada, o valor máximo que exige 17 bits pode ser representado por 5 bits, e a quantidade de arma- zenamento necessária para armazenar a tabela DivTableM pode ser re- duzida.
[00195] Deve-se notar que quando o número da parte mantida é con- figurado para ser 2ºN começando a partir do início da tabela, o valor mínimo da tabela DivTableM é 2N(P - 1) e, portanto, o valor obtido pela subtração de 2º(P - 1) de cada valor pode ser mantido na tabela DivTa- bleM. O valor anteriormente mencionado é derivado pela adição de 2(P - 1) ao valor obtido da tabela. Nesse caso, a memória necessária para 1 bit pode ser reduzida ainda mais para cada valor. No texto a seguir, um valor de deslocamento de TableDivTableM no caso em que o nú- mero da parte mantida é definido como 2ºN começando a partir do início da tabela é chamado de offsetM. Se a tabela a partir da qual o desloca- mento foi subtraído for usada, então offsetM = 2N(P - 1). Caso contrário, offsetM = O.
[00196] Além disso, se apenas a parte da mantissa da tabela inversa for mantida por meio da parte inteira da representação exponencial (1/diff) * (2916), então o valor da parte de exponente precisa ser deri- vado. Nesse exemplo de processamento, a porção de derivação de pa- râmetro de predição de CCLM 310442 deriva o valor da parte de expo- ente de acordo com a fórmula abaixo. exp = clz(d, N) + (16 - N-(P-1))
[00197] Aqui, d=diff-1 (diferença de luminância), exp representa a parte de expoente (expoente), e N representa o número de elementos mantidos como uma tabela. Por exemplo, se N = 9, então 512 elementos são mantidos, e se N = 5, então 32 elementos são mantidos. Além disso, "16" é a precisão de 1/diff, isto é, o número de bits de um multiplicador para converter 1/diff em uma representação de número inteiro. Na mo- dalidade descrita acima, o cálculo é realizado multiplicando-se 65536 (= 216) para derivar o valor de 1/diff com precisão de número inteiro. Deve-se notar que a precisão de 1/diff é arbitrária, e se outro valor for usado, a precisão também precisa ser alterada para "16" de modo cor- respondente.
[00198] Uma função clz(contagem inicial de zeros) é uma função composta de duas variáveis independentes (d, mw) e retorna o número de Os consecutivos nos bits mais significativos (MSBs) de uma primeira variável independente d representada por um número binário. Uma se- gunda variável independente mw representa o número máximo de bits (número de bits). Por exemplo, se P = 5, então no caso de d = 1 (0b00001, diff = 2) (Ob é um prefixo que indica um número binário), clz(1, mw) = 4, e no caso de d = 2 (0b00010, diff = 3), clz(2, mw) = 3. Além disso, no caso de d = 16 (0b10000, diff = 17), clizZz(16, mw) = O. Deve-se notar que quando a primeira variável independente d é O, a segunda variável independente mw é retornada. Ou seja, no caso de d = O (0b00000, diff = 1), clz(0, mw) = mw.
[00199] Deve-se notar que a função clz tem um comando dedicado em uma pluralidade de CPUs. No comando dedicado, às vezes a desig- nação do número máximo de bits é limitada a valores de 8, 16, 32, etc. Entretanto, por exemplo, no caso de mw <= 8, clz(d, mw) = clz(d, 8) - (8 - mw). Além disso, o comando dedicado não é necessário. Por exemplo, no caso de clz(d, 4), o comando dedicado pode ser substituído pela fór- mula a seguir.
clz(d, 4) = (d & 0x08)?1:(d & 0x04)?2:(d & 0x02)?3:(d & 0x01)?4:5
[00200] “Deve-se notar que o valor da função clz de d e o valor loga- rítmico de d com a base sendo 2 (isto é, log2 (d)) têm a seguinte relação entre os mesmos.
Clz(x, N) + floor(log2 (x)) = N
[00201] Portanto, exp pode ser derivado por meio da fórmula abaixo.
exp = N - floor(log2 (diff)) + (16 - N-(P-1)) = 16-(P-1)- floor(log2 (diff))
[00202] Além disso, a derivação também pode ser realizada com o uso da fórmula abaixo.
exp = N - ceil(log2 (d)) + (186 - N-(P-1)) = 16-(P-1)- ceil(log2 (d))
[00203] A porção de predição de CCLM 31044 usa exp derivado de acordo com d para deslocar um valor obtido pela multiplicação de DivTa- bleM[d] (que é referido por uma diferença de luminância d (= diff - 1)) por uma diferença de crominância ChromabDelta, derivando, assim, o parâmetro de predição de CCLM a.
a = (ChromaDelta * DivTableM[d] << exp) + add) >> shiftB b=C MIN-((a*Y MIN) >> shiftA)
[00204] Aqui, exp = clz(d, N) + (16 - N-(P-1))=16-(P-1)-(N- clz(d, N))
[00205] —ParaLMDivTable[d], DivTableM[d] e exp do (exemplo de pro- cessamento 1), a seguinte relação é estabelecida.
LMDivTable[d] = DivTableM[d] << exp
[00206] Deve-se notar que o parâmetro de predição de CCLM a pode ser derivado após a derivação do número de deslocamento (shiftB - exp) com o uso da parte de exponente exp, conforme descrito abaixo. Entre- tanto, no texto a seguir, por uma questão de simplicidade, o sinal de um valor de deslocamento e uma direção de deslocamento são invertidos se os valores de deslocamento da operação de deslocamento de bit à direita e da operação de deslocamento de bit à esquerda forem negati- vos. Isso é o mesmo para outros exemplos.
a = (ChromaDelta * DivTableM[d] + add) >> (shiftB - exp)
[00207] Aqui, add = (shiftB - exp > 0)?1 << (shiftB-exp-1):O
[00208] &—Alternativamente, a porção de derivação de parâmetros de predição de CCLM 310442 pode derivar o valor da parte de expoente de acordo com a fórmula abaixo.
exp = 16 - (P - 1) - ceil(log2 (diff))
[00209] Além disso, a fórmula pode também ser da forma descrita a seguir.
exp = 16 - (P - 1) - floor(log2 (diff))
[00210] Além disso, também é possível manter apenas a parte de exponente como a tabela ShiftTableE. Por exemplo, se P = 5, então a tabela ShiftTableE[] é da seguinte forma: ShiftTableE[] = (12, 11, 10, 10,9,9,9,9,8,8,8,8,8,8,8,8, 7,7,7,7,7T,7,7,7,7T,7,7,7,7,7,7,7......). Alternativamente, a tabela ShiftTableE'[] mostrada abaixo pode ser usada.
ShiftTableE'[] = (O, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4,4,5, 5,5,5,5,5, 5,5, 5, 5, 5, 5, 5, 5, 5, 5, 5......)
[00211] Aparte de exponente é calculada da seguinte forma: exp = 16 - (P - 1) - ShiftTableE'[d].
[00212] Seonúmero máximo de bits mw for igual a ou menor que N, então as tabelas ShiftTableE e a tabela ShiftTableE' também podem ser usadas em vez da função clz.
clz(d, mw) = mw - ShiftTableE'[d] = mw - (16 - (P - 1) - Shift- TableE[d]))
[00213] A porção de predição de CCLM 31044 usa a tabela DivTa- bleM e a tabela de deslocamento ShiftTableE para derivar os parâme- tros de CCLM por meio da fórmula a seguir.
a = (ChromaDelta * DivTableM[d] << ShiftTableE[d]) + add) >> shiftB b=C MIN-((a*Y MIN) >> shiftA)
[00214] Deve-se notar que a parte de exponente exp pode ser usada, conforme descrito abaixo, para derivar o número de deslocamento (ShiftB - exp) e então o parâmetro de predição de CCLM a.
a = (ChromaDelta * DivTableM[d] + add) >> (shiftB - exp)
[00215] Aqui, add = (shiftB - exp > 0)?1 << (shiftB - exp - 1):0, exp = ShiftTableE[d]
[00216] Conforme descrito acima, a porção de predição de CCLM 31044 desse exemplo de processamento gera uma imagem de predição por meio da predição de CCLM, é fornecida com a porção de derivação de parâmetros de predição de CCLM 310442 e deriva o parâmetro de predição de CCLM a com o uso do valor de diferença de luminância (d), do valor de diferença de crominância (ChromaDelta) e da tabela inversa DivTableM. A porção de derivação de parâmetros de predição de CCLM 310442 deriva uma parte de exponente exp que corresponde ao inverso do valor de diferença de luminância (d), multiplica os elementos da ta- bela DivTableM pelo valor de diferença de crominância e deriva os pa- râmetros de predição de CCLM realizando o deslocamento de acordo com o número de deslocamento derivado a partir da parte de exponente exp.
[00217] A configuração supracitada reduz o número de bits do valor mantido na tabela inversa necessário para derivar os parâmetros de predição de CCLM, reduzindo, assim, a quantidade necessária de ar- mazenamento. Deve-se notar que, conforme ilustrado no exemplo de processamento 1, a tabela LMDivTableLow pode também não ser usada, mas quando a tabela LMDivTableLow é mantida, uma tabela com elementos de LMDivTableLow divididos em uma parte de mantissa e uma parte de exponente também pode ser gerada. Suplementação do número de bits para um produto)
[00218] Conforme descrito acima, em um CCLM, os produtos de ChromabDelta * LMDivTable[diff - 11, a * Y MIN e a * refSamples|[][] são necessários na derivação dos parâmetros de predição de CCLM a e be na geração de imagens de predição com o uso de a e b.
a = (ChromaDelta * LMDivTable[diff - 1] + low + add) >> ShiftB//11 bit * 17 bit = 28 b=C MIN-((a*Y MIN) >> shiftA)//27 bit * 10 bit = 37 predSamples|[][] = ((a * refSamples|[][]) >> shiftA) + b//27 bit * bit = 37 Largura de bits do parâmetro a)
[00219] Por exemplo, no cálculo anterior ao exemplo de processa- mento 1 supracitado, as larguras de bit de ChromaDelta, a, Y MIN e refSamples[][] na imagem de 10 bits são, respectivamente, 11 bits, 10 bits, 10 bits e 10 bits, e quando shiftA = 16, as larguras de bit de LMDivTable[diff - 1] e a são, respectivamente, 16 bits e 27 bits (= 11 bits * 16 bits). O resultado é que os produtos na derivação de a, na derivação de b e em uma predição que usa a são, respectivamente, 11 bits * 17 bits, 27 bits * 10 bits, e o produto de 27 bits * 10 bits e uma largura de bit maior e o hardware é complexo.
[00220] No exemplo de processamento 2, o produto de ChromabDelta * DivTableM[d] na derivação de a é reduzido a uma largura de bit que é menor que aquela no exemplo de processamento 1 por exp (= ShiftTa- bleE[d]), simplificando, assim, o produto. Exemplo de processamento 3)
[00221] Na modalidade descrita acima, os valores de 512 elementos usados como a faixa desejada de 1 a 512 de um valor de diferença de luminância diff são armazenados nas tabelas LMDivTable (e LMDivTa- bleLow) necessárias para a predição de CCLM. Nesse exemplo de pro- cessamento, o número de elementos armazenados na tabela é redu- zido, e os elementos não mantidos são derivados por meio de cálculo, reduzindo, assim, a memória necessária.
[00222] Por exemplo, a porção de derivação de parâmetros de pre- dição de CCLM 310442 deriva os parâmetros de predição de CCLM (a, b) com o uso da tabela LMDivTable 2N incluindo elementos 2'N. Em seguida, a porção de derivação de parâmetros de predição de CCLM 310442 calcula, de acordo com 1/k de um valor armazenado, o valor de um elemento não armazenado na tabela LMDivTable 2N. LMDivTa- ble 2N[] é uma tabela que armazena os primeiros elementos 2'N de LMDivTablel].
[00223] Especificamente, é fornecida uma descrição com referência à Figura 17. A Figura 17 é um diagrama que ilustra um exemplo de cál- culo do valor de um elemento não mantido em uma tabela. Nesse exem- plo, N = 3. Conforme mostrado na Figura 17, a porção de derivação de parâmetros de predição de CCLM 310442 usa diretamente os valores da tabela LMDivTable 2N para um intervalo DO[O0..2/N - 1] (por exem- plo, 0..7) de d mantido pelos valores da tabela LMDivTable 2N, usa o valor de 1/2 do valor do intervalo DO'[2/N/2..2AN(N + 1) - 1] (por exemplo,
4..7) da segunda metade de DO da tabela LMDivTable 2N para o pró- ximo intervalo D1[2/N..2N(N + 1) -1] (por exemplo, 8..15), usa o valor de 1/4 do valor do intervalo DO' (por exemplo, 4..7) da tabela LMDivTa-
ble 2N para o próximo intervalo D2[2/(N + 1)..2N(N + 2) -1] (por exem- plo, 16.. 31) e usa o valor de 1/8 do valor do intervalo DO' (por exemplo,
4..7) da tabela LMDivTable 2N para o próximo intervalo D3[2(N + 2)..2N(N + 3) -1] (por exemplo, 32..63). Além disso, o intervalo D1 tem uma largura duas vezes maior que a largura do intervalo DO'; o intervalo D2 tem uma largura 4 vezes maior que a largura do intervalo DO"; o in- tervalo D3 tem uma largura 8 vezes maior que a largura do intervalo DO". Ou seja, os valores do intervalo Dsc[2"(N + sc - 1)..2º(N + sc) - 1] são os valores obtidos multiplicando-se os valores do intervalo DO'[2/N/
2..20(N + 1) - 1] por 1/Kk (aqui K = 2ºsc), e partindo do início do intervalo Dsc, os mesmos valores são armazenados para cada k. Aqui, 1 <= sc <= 6. O número 6 é derivado de 9 - 3; 9 é a precisão de diff, e 3 é determinado de acordo com D1 começando em 8 (= 2'3).
[00224] Por exemplo, se N = 3, então o valor seguinte a d(= diff - 1) = 8 é calculado multiplicando-se o valor do intervalo DO' por 1/k con- forme descrito abaixo.
Intervalo [8..15] — 1/2 Intervalo [16..31] — 1/4 Intervalo [32..63] — 1/8 Intervalo [64..127] — 1/16 Intervalo [128..255] — 1/32 Intervalo [256..511] — 1/64 Tabela 1 Ee tm e
[00225] A Figura 18 é um diagrama para ilustrar um exemplo de cál- culo do valor de um elemento não mantido em uma tabela. Mais espe- cificamente, conforme mostrado na Figura 18, por exemplo, d = 8, 9 é 1/2ded=4;d=10,11 é 1/2ded=5;d=12,13é 1/2ded=6;d=14, 15é 1/2ded=7;d=16,17,18,19é 1/4 ded=4;e d=20,21,22,23 é 1/4 ded=5...... (a lista continua), e o cálculo é realizado com refe- rência à tabela LMDivTable 2N como k valores consecutivos iguais den- tro de uma faixa de 1/k dos valores. Ou seja, é usada a referência d/kK à tabela LMDivTable 2N. No texto a seguir, k é chamado de escala, e sc = log2 (k) é chamado de valor de deslocamento de escala. Deve-se no- tar que um valor (d >> sc ou diff >> sc) obtido mediante normalização de acordo com o valor de deslocamento de escala sc é chamado de normbDiff.
[00226] Especificamente, se uma fórmula é usada para a represen- tação, então a tabela inversa LMDivTable 2 é referida em LMDivTa- ble 2N[d/k]/k (= LMDivTable 2N[d >> sc] >> sc) com o uso do k deri- vado por meio da fórmula abaixo.
sc = (9 - N) - ciz(d >> N, 9 -N) k = 2(sc)
[00227] Deve-se notar que "9" se deve à precisão (número de bits) de diff sendo de 512 elementos (9 bits), e se a precisão for diferente, um valor diferente será atribuído.
[00228] Por exemplo, sc pode ser derivado também por meio da fór- mula abaixo.
sc = (9 - N) - (9 - N - (floor(log2 (d)) - N)) = floor(log2 (d)) - N
[00229] A porção de predição de CCLM 31044 deriva o parâmetro de predição de CCLM a com o uso de um valor obtido pelo deslocamento adicional do valor da tabela DivTableM por sc e a diferença de cromi- nância ChromabDelta, em que o valor da tabela DivTableM é referido por um valor (d >> sc) obtido pelo deslocamento da diferença de luminância d (= diff - 1) por um valor de deslocamento de escala sc que é depen- dente de d.
a = (ChromaDelta * (LMDivTable 2N[d >> sc] >> sc) + add) >> shiftB b=C MIN-((a*Y MIN) >> shiftA)
[00230] Aqui, add = (shiftB > 0)?1 << (shiftB - 1):O
[00231] —Alternativamente, quando a configuração de sempre realizar o deslocamento à direita de 1 bit na derivação de um termo de correção de reciclagem "add" é usada conforme mostrado abaixo, obtém-se um efeito de simplificação para eliminar a divergência de se o número de deslocamento é positivo.
add = (1 << shiftB) >> 1
[00232] “Deve-se notar que a posição de aplicação do deslocamento implementado com o uso de sc não depende da situação anteriormente mencionada. O parâmetro de predição de CCLM a pode também ser derivado conforme mostrado abaixo.
a = (ChromaDelta * (LMDivTable 2N[d >> sc] + add) >> (ShiftB + sc) b=C MIN-((a*Y MIN) >> shiftA)
[00233] Aqui, add = (shiftB + sc > 0)?1 << (shiftB + sc - 1):O ou add = (1 << (shiftB + sc)) >> 1
[00234] Deve-se notar que, no processo acima, o caso em que d = O é excluído é considerado na divisão de 1/d, e apenas a tabela acima d >= 1 é usada. Ou seja, é utilizada uma tabela de d = diff - 1 em vez de d = diff, embora a tabela de d = diff também possa ser usada.
[00235] Em outras palavras, conforme mostrado em LMDivTa- ble 2N[d >> sc] acima, a tabela inversa LMDivTable 2N é referida de acordo com um índice (d >> sc) obtido pela redução de um valor medi- ante execução de deslocamento, de modo que o número de elementos de LMDivTable 2N seja reduzido, alcançando-se, assim, o efeito de re- duzir o tamanho da tabela. Além disso, ajustando-se o tamanho medi- ante deslocamento adicional à direita de um valor da tabela inversa LMDivTable 2N, conforme mostrado por LMDivTable 2N[d >> sc] >> sc e (LMDivTable 2N[d >> sc] + add) >> (shiftB + sc) não degrada o de- sempenho, mas, em vez disso, obtém o efeito de redução do tamanho da tabela. Variação do exemplo de processamento 3)
[00236] Na modalidade supracitada, uma tabela para d = diff - 1 é configurada; o número de elementos armazenados na tabela é redu- zido; os elementos não mantidos são derivados por meio de cálculo, reduzindo, assim, a memória necessária. Nessa variação, é descrito um exemplo de configuração de uma tabela para diff(0 <= diff <= 511) a fim de reduzir a memória necessária. A seguir é descrita a diferença para o exemplo de processamento 3.
[00237] Por exemplo, se o número de elementos da tabela é 2/N, N=5, então é estabelecida uma correspondência com a Tabela 1, con- forme mostrado na Tabela 2. Tabela 2 [fintevalo — [diff = Tk sc |range(difí32) ix exp iShift(16-exp)| DO 0..31 1 o jo 0.31 [13.18 |3..8 pes e o ses 7 D2 64..127 14 | 2 [23 16.31 [9,8 7,8 Ep Es e ese rs e ses me fo fes estes 7 ps e qe se e pv o |
[00238] Especificamente, se uma fórmula é usada para a represen- tação, então a tabela inversa LMDivTable 2' é referida em LMDivTa- ble 2N'[d/kK]/k (= LMDivTable 2N[d >> sc] >> sc) com o uso do k deri- vado por meio da fórmula abaixo. LMDivTable 2N'[] é uma tabela obtida inserindo-se "O" no início de LMDivTable 2N[] e eliminando-se os ele- mentos no final.
range = diff >> N sc = ShiftTableE" 2 Nírange + 1] k = 2(sc) ShiftTableE" 2 N[] é uma tabela obtida pela inserção de "O" no início de ShiftTableE' 2 NI].
ShiftTableE" 2N[] = (0, O, 1,2,2,3,3,3,3,4,4,4,4,4,4,4, 4,5,5,5,5,5,5, 5,5, 5, 5, 5, 5, 5, 5, 5, 5, 5......)
[00239] A porção de predição de CCLM 31044 deriva o parâmetro de predição de CCLM a com o uso de um valor obtido pelo deslocamento adicional do valor da tabela LMDivTable 2N' por sc e a diferença de crominância ChromabDelta, em que o valor da tabela LMDivTable 2N' é referido por um valor (diff >> sc) obtido pelo deslocamento da diferença de luminância diff por um valor de deslocamento de escala sc que é dependente de diff.
a = (ChromaDelta * (LMDivTable 2N'[diff >> sc] >> sc) + add) >> shiftB b=C MIN-((a*Y MIN) >> shiftA)
[00240] Aqui, add = (shiftB > 0)?1 << (shiftB - 1):O ou add = (1 << shiftB) >> 1 LMDivTable 2N'] é uma tabela obtida inserindo-se "O" no início de LMDivTable 2N'[] e eliminando-se os elementos no final.
[00241] O efeito do exemplo de processamento 3 é o mesmo que o dessa variação. Exemplo de processamento 4)
[00242] A porção de derivação de parâmetros de predição de CCLM 310442 pode executar o processamento combinando os exemplos de processamento 1 a 3 anteriormente mencionados. Nesse caso, a por- ção de derivação de parâmetros de predição de CCLM 310442 deriva um valor de deslocamento de escala sc que corresponde ao valor de diferença de luminância (d), deriva o valor (DivTableM 2N[d>>sc]) da tabela DivTableM 2N com referência ao valor d>>sc como o índice (po- sição do elemento), o valor d>>sc sendo obtido por deslocamento à di- reita do valor de diferença de luminância (d) por sc, e então multiplica o valor de diferença de crominância pelo valor r obtido mediante desloca- mento com o uso de um valor exp correspondendo a uma parte de ex- ponente que corresponde a d >> sc e um valor de deslocamento sc, derivando, desse modo, os parâmetros de predição de CCLM.
[00243] Os parâmetros de predição de CCLM (a, b) são derivados de acordo com a fórmula abaixo.
a = (ChromaDelta * r + add) >> shiftB b = MinChromaValue - ((a * MinLumaValue) >> shiftA) d=diff-1 sc = (D-N)-clz(d>>N, D-N) exp = clz(d >> sc, N) + (16 - N-P-1)) r = (DivTableM 2N[d >> sc] + offsetM) << exp >> sc add = (shiftB > 0)? 1 << (shiftB - 1):O
[00244] Por exemplo, sc pode ser derivado também por meio da fór- mula abaixo. A operação é da seguinte forma.
c=(D-N)-(D-N-(floor(log2 (d)) - N)) = floor(log2 (d)) - N Se for usado um deslocamento (o número da parte mantida é configurado para ser 2ºN começando a partir do início da tabela), en- tão offsetM = 2N(P - 1). Se nenhum deslocamento for utilizado, então offsetM = O.
[00245] Aqui, D: (1..2ºD) representa a faixa do valor de diff, em que D= 9 do (exemplo de processamento 1) ao (exemplo de processamento 3) N: um número inteiro que representa log2 do número de ele- mentos de DivTable, em que 0 < N<= D P: o número de bits da parte de mantissa na representação exponencial do valor de um múltiplo integral (216) de 1/diff, em que O <=P-1<=16-N
[00246] Deve-se notar que a ordem de aplicação do valor de deslo- camento de escala sc e do valor de deslocamento exponencial exp não se limita ao exposto acima. Por exemplo, a porção de derivação de pa- râmetros de predição de CCLM 310442 deriva o sc correspondente ao valor de diferença de luminância (d) e usa o valor de deslocamento (ShiftB + sc - exp) derivado de acordo com exp e sc para deslocar o valor obtido com a multiplicação de DivTableM 2N[d >> sc] pelo valor de di- ferença de crominância, derivando, assim, os parâmetros de predição de CCLM. Pela tabela, DivTableM 2N[d >> sc] se refere, como o índice (posição do elemento), ao valor d >> sc obtido por deslocamento à di- reita do valor de diferença de luminância (d) por sc.
a = (ChromaDelta * r + add) >> (shiftB + sc - exp) b = MinChromaValue - ((a * MinLumaValue) >> shiftA) d=diff-1 sc = (D-N)-clz(d>>N, D-N) exp = clz(d >> sc, N) + (16 - N-(P-1)) r= (DivTableM 2N[d >> sc] + offsetM) add = (shiftB + sc - exp > 0)?1 << (shiftB + sc - exp - 1):O0 offsetM = 2N(P - 1) ou O
[00247] Além disso, é possível também normalizar o valor de Chro- mabDelta usando-se primeiramente o valor de deslocamento shiftB.
a = ((ChromaDelta + add) >> shiftB) * r >> (sc - exp) Exemplos de valores de tabela)
[00248] São mostrados a seguir exemplos de valores de tabela.
<Exemplo 1> N=6 e P = 5, com um deslocamento offsetM de 2º(P - 1)
[00249] “DivTableM 2N[64] = (0,0,5,0,10,5,2,0,12,10,7,5,4,2, 1,0, 14, 12,11,10,8,7,6,5,4,4,3,2,2,1,1,0,15, 14,13, 12,12,11, 10, 10, 9, 8, 8,7, 7, 6,6, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2,2, 1,1, 1,1,0,0)
[00250] ShiftTableE 2N[64] = (12, 11,10,10,9,9,9,9,8,8,8,8,8, 8,8,8,7,7,7,7,7T,7T,T,7,7T,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6)
[00251] “<Variação do exemplo 1> No caso de um método de arre- dondamento diferente, a tabela pode também ser da forma descrita a seguir.
[00252] — DivTableM 2N[64] = (0, O, 5, 0, 10, 5, 2, 0, 12, 10,7,5,4,2, 1,0, 14, 12,11,10,8,7,6,5,4,4,3,2,2,1,1,0,15, 14, 14, 13,12,11, 11,10,9,9,8,8,7,7,6,6,5,5,4,4,4,3,3,3,2,2,2,1,1,1,1,0)
[00253] ShiftTableE 2N é similar à do <exemplo 1 >.
[00254] SeN=6eP=o5,então a quantidade de armazenamento necessária para armazenar a tabela é (5 - 1) * 296 = 4 * 64 = 256 (bits). Em comparação com o caso da modalidade acima descrita, 256/16896 = 1,515%, e a quantidade de armazenamento pode ser reduzida signifi- cativamente. <Exemplo 2> N=5 e P=5 com um deslocamento de 2º(P - 1)
[00255] “DivTableM 2N[32] = (0, O0,5,0,10,5,2,0,12,10,7,5,4,2, 1,0, 14, 12, 11, 10, 8,7,6,5,4,4,3,2,2,1,1,0)
[00256] ShiftTableE 2N[32] = (12, 11,10,10,9,9,9,9,8,8,8,8,8, 8,8,8,7,7,7T,7T,7T,T,7T,7T,7T,7T,7T,7,7,7,7, 7)
[00257] Nesse caso (N=5,P=5eD=9com um deslocamento), as fórmulas de derivação de a e b são resumidas da seguinte forma: d=diff-1 sc = (D - N) -cliz(d >> N, D - N) = (9-5) - ciz(d >> 5, 9-5) = 4 - clz(d >> 5,4) exp = clz(d >> sc, N) + (16 - N-(P - 1)) = clz(d >> sc, 5) +
(16-5-(5-1) = clz(d >> sc, 5) +7 offsetM = 2N(P - 1) = 20(5-1) = 16 r= (DivTableM 2N[d >> sc] + offsetM) = DivTableM 2N[d >> sc] + 16 add = (shiftB + sc-exp > 0)?1 << (shiftB + sc - exp - 1):0, a = (ChromaDelta * r + add) >> (shiftB + sc - exp) b = MinChromaValue - ((a * MinLumaValue) >> shiftA)
[00258] Nesse caso, se for utilizada ShiftTableE 2N em vez de clz, então a e b são calculados conforme mostrado abaixo.
d=diff-1 sc = (D- N) - ciz(d >> N, D - N) = (D- N) - ((D - N) - (16 - (P - 1) - ShiftTableE 2N[d >> 5])) = 4 - (4 - (16 - 4) - ShiftTableE 2N[d >> 5])) = 12 - ShiftTableE 2N[d >> 5] exp = ShiftTableE 2N[d >> 5] offsetM = 2N(P - 1) = 20(5-1) = 16 r= (DivTableM 2N[d >> sc] + offsetM) = DivTableM 2N[d >> sc] + 16 add = (shiftB + sc - exp > 0)?1 << (shiftB + sc - exp - 1):0, a = (ChromaDelta * r + add) >> (shiftB + sc - exp) b = MinChromaValue - ((a * MinLumaValue) >> shiftA)
[00259] “<Variação do exemplo 2> No caso de um método de arre- dondamento diferente, a tabela pode também ser da forma descrita a seguir.
[00260] DivTableM 2N[32] = (0, O, 5,0,10,5,2,0,12,10,7,5,4,2, 1,0, 14, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 3,2, 1, 1,0) ShiftTableE 2N é similar à do <exemplo 2 >.
[00261] Deve-se notar que no caso de nenhum deslocamento (offsetM = O), os valores obtidos pela adição dos respectivos elementos do deslocamento supracitado DivTableM 2N a 2N(P - 1) previamente são armazenados e usados.
<Exemplo 3> N=6 e P=4 com um deslocamento de 2º(P - 1)
[00262] “DivTableM 2N[64] = (0, O, 3,0,5,3,1,0,6,5,4,3,2,1,1, 0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0,0,7,7,7,6,6,5,5,5,4,4,4,4, 3,3,3,3,2,2,2,2,2,1,1,1,1,1,1,1,0,0,0,0)
[00263] ShiftTableE 2N[64] = (13,12,11,11,10,10,10,10,9,9,9, 9,9,9,9,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7, 7,7T,7T,7T,7T,7,7,7T,7T,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7)
[00264] <Variação do exemplo 3> No caso de um método de arre- dondamento diferente, a tabela pode também ser da forma descrita a seguir.
[00265] “DivTableM 2N[32] = (0, 0,3,0,5,3,1,0,6,5,4,3,2,1,1, O0,7,6,6,5,4,4,3,3,2,2,2,1,1,1,1,0)
[00266] ShiftTableE 2N é similar à do <exemplo 3 >.
[00267] <Exemplo4>N=5 e P=4 com um deslocamento de 2)(P - 1)
[00268] DivTableM 2N[32] = (0,0,3,0,5,3,1,0,6,5,4,3,2,1,1, 0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0,0)
[00269] ShiftTableE 2N[32] = (13, 12,11, 11,10,10,10,10,9,9,9, 9,9,9,9,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,)
[00270] <Variação do exemplo 4> No caso de um método de arre- dondamento diferente, a tabela pode também ser da forma descrita a seguir.
[00271] DivTableM 2N[32] = (0, O,3,0,5,3,1,0,6,5,4,3,2,1,1, O0,7,6,6,5,4,4,3,3,2,2,2,1,1,1,1,0)
[00272] ShiftTableE 2N é similar à do <exemplo 4 >.
[00273] Deve-se notar queseN=5eP=A4,então a quantidade de armazenamento necessária para armazenar a tabela é (4- 1) * 2º5=3 * 32 = 96 (bits). Em comparação com o caso descrito na modalidade acima, 96/16896 = 0,568%, e a quantidade de armazenamento pode ser reduzida significativamente.
[00274] Nos exemplos de processamento 5 e 6 ilustrados abaixo, a tabela acima pode ser usada. Exemplo de processamento 5)
[00275] Noexemplo de processamento 5, é ilustrado um exemplo no qual a precisão shiftA do parâmetro a é definida para ser variável na fórmula (CCLM - 1). Especificamente, a precisão shiftA do parâmetro a é derivada a partir do valor de deslocamento exp derivado a partir do valor de diferença de luminância diff.
[00276] Em seguida, a porção de derivação de parâmetros de predi- ção de CCLM 310442 deriva o termo (diffC/diff) equivalente ao coefici- ente angular da predição linear a partir do valor de diferença de lumi- nância diff e do valor de diferença de crominância diffC, e considera o termo como o parâmetro a (aqui, um valor de 2ºshiftA (= 1 << shiftA) vezes o parâmetro a é derivado para realizar a integração).
[00277] Primeiramente, a porção de derivação de parâmetros de pre- dição de CCLM 310442 deriva um valor v equivalente à parte de man- tissa do inverso de diff com o uso do método descrito acima.
idx = diff >> sc exp = 16 - (P - 1) - ceil(log2 (idx)) -sc msb = 1<<(P-1) v= DivTable 2N'[idx]|msb
[00278] Aqui, P é uma constante especificada (por exemplo, P = 4) que corresponde ao número de bits da parte de mantissa da tabela in- versa (1/diff). Além disso, exp é uma variável que diminui à medida que a diferença de luminância diff aumenta (e é uma variável que diminui proporcionalmente ao valor logarítmico de diff) e pode ser derivada de acordo com uma tabela. Deve-se notar que se idx = O, então log2 (idx) é ajustado para O. Aqui, a subtração de outro valor de 16 para obter o valor de exp é devido ao fato de que a tabela inversa é criada com base em (2M16)/diff. Abaixo, a largura de bit usada como uma referência da tabela inversa é representada como baseA. Se a largura de bit do parà- metro a não for limitada, então shiftA = baseA. Deve-se notar que o valor máximo de v é (1 << P) -1, e o número de bits de vé P.
exp = 16 - (P - 1) - ShiftTableE" 2N[idx] — sc
[00279] A porção de derivação de parâmetros de predição de CCLM 310442 ajusta o número de bits do parâmetro a ao executar adicional- mente o deslocamento à direita por shift a, conforme descrito abaixo, se o parâmetro a for derivado por meio de um produto de diffC e v.
add = (1 << shift a) >> 1 a = (diffC * v + add) >> shift a b=C Y MIN-((a*Y MIN) >> shift a)
[00280] Aqui, shift a é um valor derivado a partir da profundidade de bit bitDepth de uma imagem. expC é uma constante que limita a largura de bit do parâmetro a e, por exemplo, varia de O a 3. A largura de bit do parâmetro a é a largura de bit de diffC + a largura de bit de v - shift a, é bitDepth + P - (bitDepth - 8 - expC) = P + 8 - expC, e diminui para um valor pequeno não dependente da profundidade de bit da imagem. Por exemplo, quando P = 4 e expC = 3, a tem uma largura de bit de 9 bits.
shift a = bitDepth - 8 — expC
[00281] A porção de derivação de parâmetros de predição de CCLM 310442 ajusta o valor de shiftA subtraindo um valor de exp e expC do valor inicial de shiftA (= baseA, por exemplo, 16), sendo que o valor de exp é derivado com o uso da diferença de luminância diff.
ShiftA = 16 - (exp + expC)
[00282] A porção de filtro de predição de CCLM 310443 produz uma imagem de predição predSamples[][] com o uso da fórmula (CCLM - 1) e com o uso dos parâmetros de predição de CCLM (a, b) e o desloca- mento shiftA ajustado descrito acima.
[00283] “Dessa maneira, a largura de bit de a usada para derivação de b ou a geração da imagem de predição predSamples|[][] pode ser reduzida derivando-se adaptativamente a quantidade de deslocamento de a por meio da diferença de luminância diff e da profundidade de bit bitDepth. Dessa forma, obtém-se o efeito de simplificação do produto de a e o valor de luminância refSamples[][] na fórmula (CCLM - 1).
[00284] No exemplo de processamento 5, o produto de diffC * v na derivação de a é reduzido de 11 bits * 16 bits no exemplo de processa- mento 1 para 11 bits * P bits, alcançando-se, assim, o efeito de simplifi- car o produto. Quando P = 4, 11 bits * 4 bits = 15 bits.
[00285] — No exemplo de processamento 5, o produto de a * Y MIN na derivação de b é reduzido de 27 bits * 10 bits no exemplo de processa- mento 1 para P + 8 - expC bits * 10 bits, alcançando-se, assim, o efeito de simplificar o produto. Quando P = 4 e expC = 3, 9 bits * 4 bits = 13 bits.
[00286] No exemplo de processamento 5, o produto da fórmula (CCLM - 1) é reduzido de 27 bits * 10 bits no exemplo de processamento 1 para P + 8 - expC bits * 10 bits, alcançando-se, assim, o efeito de simplificar o produto. Quando P = 4 e expC = 3, 9 bits * 4 bits = 13 bits.
[00287] “Deve-se notar que expC no exemplo de processamento 5 é uma constante que é diferente do exemplo de processamento 5 e não depende de uma diferença de crominância e, portanto, pode também ser chamada de expConst, ou similar, em vez de ser chamada de expC. Exemplo de processamento 6)
[00288] No exemplo de processamento 6, é descrito um exemplo no qual a precisão shiftA do parâmetro a para um produto com o valor de luminância é definida para ser variável na fórmula (CCLM - 1). Especifi- camente, o limite superior do número de bits de a (domínio de valor de a) é definido como max a bits, e a precisão shiftA do parâmetro a é derivada com base em diffC servindo como a diferença de crominância (C Y MAX-C Y MIN). Deve-se notar que o exposto acima pode ser in- terpretado como um exemplo no qual uma mantissa de um número fixo de bits e uma potência de 2 representam o parâmetro a. Em seguida, o número de bits da parte de mantissa de a é representado por max a bits, e o número de bits da parte de exponente é representado por expC.
[00289] Na sequência, a porção de derivação de parâmetros de pre- dição de CCLM 310442 deriva o termo (diffC/diff * 2ºshiftA) equivalente ao coeficiente angular a partir do denominador (valor de diferença de luminância) diff e do numerador (valor de diferença de crominância) diffC e o considera como o parâmetro a. Em seguida, 2ºshiftA (isto é, 1 << ShiftA) vezes o parâmetro a é tomado para realizar a integração.
[00290] Primeiramente, a porção de derivação de parâmetros de pre- dição de CCLM 310442 deriva idx usado para referência a uma tabela inversa obtida por meio da compressão de diff e, então, deriva um valor v equivalente ao inverso de diff.
difft= Y MAX- Y MIN range = (diff >> N) + 1 sc = ceil(log2 (range)) idx = diff >> sc
[00291] Aqui, Né uma constante especificada, por exemplo, 5.
msb = 1<<(P-1) v= DivTable 2N'[idx]|msb
[00292] Aqui, Pé o número de bits da parte de mantissa (a parte mantida na tabela DivTable 2N') da tabela inversa (1/diff), e msb é offsetM.
[00293] A porção de derivação de parâmetros de predição de CCLM 310442 deriva o valor de deslocamento exp correspondente ao valor de diferença de luminância diff.
exp = 16 - (P - 1) - ceil(log2 (diff + 1)) = 16 - (P - 1) - ceil(log2 (idx)) — sc
[00294] Além disso, exp pode ser derivado com referência à tabela.
exp = 16 - (P - 1) - ShiftTableE" 2N[idx] — sc
[00295] A porção de derivação de parâmetros de predição de CCLM 310442 deriva um valor de deslocamento expC que corresponde ao va- lor logarítmico do valor absoluto absDiffC do valor de diferença de cro- minância diffC.
diffo = C Y MAX-C Y MIN absDiffC = (diffC < 0? - diffC:diffC) rangeDiffC = (absDiffC >> (max a bits -P -1)) expC = ceil(log2 (rangeDiffC + 1))
[00296] Aqui, a configuração na qual o valor de max a bits é definido como P + 1 também é preferencial, e nesse caso, rangeDiffC = absDiffC. Portanto, a porção de derivação de parâmetros de predição de CCLM 310442 deriva expC omitindo rangeDiffC, conforme mostrado abaixo.
expC = ceil(log2 (absDiffC + 1))
[00297] Seo parâmetro a for derivado por meio do produto de diffC e v, então a porção de derivação de parâmetros de predição de CCLM 310442 desloca adicionalmente diffC * v à direita por expC para derivar o parâmetro a com um número limitado de bits, conforme mostrado abaixo.
add = (1 << expC) >> 1 a = (diffC * v + add) >> expC, formula (a - 1) b=C Y MIN-((a*Y MIN) >> expC)//shift a = expC, for- mula (b - 1)
[00298] Seafórmula(a-1)for suplementada, então a fórmula (a - 1) é multiplicada pela variável com sinal diffC, e é deslocada à direita pela largura de bit da variável diffC + max a bits - P - 1. Portanto, a largura de bit de a é max a bit da soma da largura de bit P de v, max a bits - P-1edo bit de sinal 1. Em particular, em uma configuração na qual max a bits =P + 1, arepresentação pode ser executada por P + 1 bits obtidos pela adição de no máximo 1 sendo o bit de sinal de diffC à lar- gura de bit (por exemplo, P) de v.
[00299] A porção de derivação de parâmetros de predição de CCLM 310442 ajusta o valor de shiftA subtraindo exp e expC do valor inicial de ShiftA (por exemplo, 16), sendo que o exp é derivado com o uso do de- nominador (valor de diferença de luminância diff) e o expC é derivado com o uso do numerador (valor de diferença de crominância diffC).
ShiftA = 16 - (exp + expC)
[00300] Por exemplo, se max a bits = 5, então a é representado de acordo com uma precisão de 5 bits (-16 a 15). Além disso, expC é uma variável que aumenta à medida que o valor absoluto da diferença de crominância diffC aumenta (e é uma variável que aumenta proporcio- nalmente ao valor logarítmico de absDiffC).
expC = ceil(log2 (rangeDiffC))
[00301] Deve-se notar que se rangeDiffC = O, então expC = 0. expC pode ser derivada com referência à tabela.
expC = ShiftTableE" 2 N[rangeDiffC + 1]
[00302] A porção de filtro de predição de CCLM 310443 produz uma imagem de predição predSamples[][] com o uso da fórmula (CCLM - 1) e com o uso dos parâmetros de predição de CCLM (a, b) e o desloca- mento shiftA ajustado descrito acima.
[00303] Dessamaneira, a profundidade de bit de a pode ser reduzida derivando-se adaptativamente a quantidade de deslocamento de a, a partir da diferença de crominância diffC. De modo correspondente, a deterioração da precisão é suprimida, e o produto de a e o valor de lu- minância refSamples[][] na fórmula (CCLM-1) é simplificado.
[00304] No exemplo de processamento 6, o produto de diffC * v na derivação de a é reduzido de 11 bits * 16 bits no exemplo de processa- mento 1 para 11 bits * P bits, alcançando-se, assim, o efeito de simplifi- car o produto. Quando P = 4, 11 bits * 4 bits = 15 bits.
[00305] No exemplo de processamento 6, o produto de a * Y MIN na derivação de b é reduzido de 27 bits * 10 bits no exemplo de processa- mento 1 para max a bits * 10 bits, alcançando-se, assim, o efeito de simplificar o produto. Quando max a bits = 5, 5 bits * 10 bits = 15 bits.
[00306] No exemplo de processamento 6, o produto da fórmula (CCLM - 1) é reduzido de 27 bits * 10 bits no exemplo de processamento 1 paramax a bits * 10 bits, alcançando-se, assim, o efeito de simplificar o produto. Quando max a bits = 5, 5 bits * 10 bits = 15 bits. Exemplo de processamento 7)
[00307] “Notextoa seguir, o processamento de uma combinação dos exemplos de processamento 1 a 3 (exemplo de processamento 4) colo- cando ênfase na redução de tabela, do exemplo de processamento 2 colocando ênfase na redução de largura de bit e dos exemplos de pro- cessamento 5 e 6 é descrito em relação ao processamento como o exemplo de processamento 7. O que já foi descrito será parcialmente omitido, e será fornecida uma breve descrição. Além disso, shiftB para limitar diff a um número especificado de bits é ajustado para 0. Um mé- todo para derivar os parâmetros de predição de CCLM a e b é mostrado abaixo. Se C Y MAX=C Y MIN, então a=0eb=C Y MIN.
[00308] A porção de derivação de parâmetros de predição de CCLM 310442 deriva, a partir do valor de diferença de luminância diff, o índice idx usado para fazer referência à tabela inversa DivTableM 2N' e a va- riável exp usada para ajuste de precisão, e deriva um valor v equivalente ao inverso de diff.
ShiftA = baseA = 16 difft= Y MAX- Y MIN range = diff >> N sc = ceil(log2 (range + 1)) idx = diff >> sc exp = baseA - (P - 1) - ceil(log2 (idx)) - se msb = 1<<(P-1) v = (DivTableM 2N'[idx]|msb)
[00309] Aqui, baseA é o número de bits (por exemplo, 16) usado como referência para derivar a tabela inversa DivTableM 2N'[idx]; N é uma constante que corresponde ao número de elementos (2'"N) de DivTableM 2N'; P é uma constante que corresponde ao número de bits da parte de mantissa na representação exponencial de (2M16/diff) com um número-base de 2; max a bits é uma constante que corresponde ao número de bits da parte de mantissa na representação exponencial de a com um número-base de 2. O bit mais significativo, msb, também é uma constante. Um exemplo pode ser N=5,P=4,max a bits=5,e msb = 2N(P - 1) = 8. Um exemplo de DivTableM 2N'[] no caso de msb = 2N(P - 1) (um deslocamento está presente) é mostrado abaixo.
[00310] DivTableM 2N'[32] = (O, O, O,3,0,5,3,1,0,6,5,4,3,2,1, 1,0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0)
[00311] A porção de derivação de parâmetros de predição de CCLM 310442 deriva, a partir do valor de diferença de crominância diffC, a variável expC para limitar a largura de bit do parâmetro a.
max a bits=5 diffo = C Y MAX-C Y MIN absDiffC = (diffC < 0? - diffC:diffC) rangeDiffC = (absDiffC >> (max a bits -P -1)) expC = ceil(log2 (rangeDiffC + 1)) shift a = expC
[00312] A porção de derivação de parâmetros de predição de CCLM 310442 deriva o parâmetro a com um número limitado de bits por des- locamento à direita adicional de diffC * v por shift a, conforme descrito abaixo.
add = 1 << shift a >> 1 a = (diffC * v + add) >> shift a
[00313] Nessa configuração, shift a = expC, de modo que as fórmu- las para derivar a e b podem ser substituídas pelas fórmulas abaixo.
add = (1 << expC) >> 1 a = (diffC * v + add) >> expC
[00314] Dessa forma, a largura de bit (precisão) de a pode ser man- tida fixa independentemente do valor de diffC.
[00315] A porção de derivação de parâmetros de predição de CCLM 310442 ajusta o valor de shiftA subtraindo exp e expC do valor inicial de ShiftA (por exemplo, 16), sendo que exp é derivado com o uso de diff e expC é derivado com o uso de diffC.
ShiftA- = exp + expC
[00316] Além disso, se o valor inicial for 16, então shiftA também pode ser derivado conforme mostrado abaixo.
ShiftA = 16 - exp — expC
[00317] Além disso, uma vez que o valor inicial baseA de shiftA tam- bém é usado para a derivação de expC e desloca um do outro, shiftA pode ser diretamente derivado com o uso das constantes P, idx e ran- geDiffC.
ShiftA = baseA - (baseA - (P - 1) - ceil(log2 (idx)) - sc) - ceil(log2 (rangeDiffC + 1)) = P-1+ ceil(log2 (idx)) + sc - ceil(log2 (rangeDiffC + 1))
[00318] A porção de derivação de parâmetros de predição de CCLM 310442 deriva o parâmetro b com o uso do parâmetro a que tem uma largura de bit limitada.
b=C Y MIN-((a*Y MIN) >> shiftA)
[00319] A porção de filtro de predição de CCLM 310443 produz uma imagem de predição predSamples[][] com o uso da fórmula (CCLM - 1) e com o uso dos parâmetros de predição de CCLM (a, b) e o desloca- mento shiftA ajustado descrito acima.
[00320] Deve-se notar que, conforme mostrado no exemplo de pro- cessamento 6, expC pode ser ajustado para uma constante especifi- cada independentemente de diffC. Entretanto, expC é menor que um valor obtido pela adição da profundidade de bit bitDepth da imagem a P (o número de bits da parte de mantissa na representação exponencial de (2M16/diff) com um número-base de 2). Por exemplo, se bitDepth = 10eP=4, então expC é ajustado para ser menor que 14. expC < bitDepth + P
[00321] Dessa forma, a precisão de a é ligeiramente reduzida, mas o processamento pode ser simplificado.
[00322] “De acordo com a configuração descrita acima, obtém-se os efeitos descritos nos exemplos de processamento 1 a 3, 5e 6. Se os principais efeitos forem registrados novamente, ao menos os seguintes efeitos são alcançados.
[00323] Conforme descrito no exemplo de processamento 3, um efeito de simplificação da redução no tamanho da tabela pode ser al- cançado por meio de diff >> sc e com referência à tabela.
[00324] Pode-se obter o efeito de simplificação do produto alcançado pela redução da largura de bit descrita nos exemplos de processamento 5ec. Exemplo de processamento 8)
[00325] A seguir, é ilustrado um exemplo de redução adicional de um tamanho de tabela a partir dos exemplos de processamento 3 e 7. No exemplo de processamento 3, o tamanho da tabela é reduzido por meio de diff >> sc baseado em referência (o processamento de metade do valor de (1/diff) correspondente à segunda metade DO' de DO da Figura 18 é repetido em D1, D2......). Entretanto, se valores negativos forem permitidos para sc aqui, o primeiro meio intervalo (o intervalo D-1' em DO diferente de DO') da tabela restante também pode ser derivado a partir do segundo meio intervalo (DO'). Esse processamento pode ser realizado pela derivação do índice subtraindo-se o valor especificado do valor de diferença que foi escalonado da maneira de (diff >> sc) - 16.
[00326] A Figura 19é um diagrama mostrando um exemplo de fluxo de dados de um exemplo de processamento de acordo com a presente invenção. A Figura 19 representa ações de uma porção de derivação de coeficiente de divisão de número inteiro fornecida na porção de deriva- ção de parâmetros de predição de CCLM 310442 do exemplo de pro- cessamento 8 nesta modalidade. A porção de derivação do coeficiente de divisão de número inteiro considera diff e diffC como entradas e de- riva um coeficiente de predição linear a correspondente a diffC/diff e um valor de deslocamento shiftA correspondente à precisão de a e usado para predição linear. Deve-se notar que cada variável satisfaz a se- guinte relação. a = (diffC/diff) << shiftA
[00327] — Aqui, diffC corresponde ao numerador, e diff corresponde ao denominador, de modo que diffC pode ser chamado também de nume- rador, e diff pode também ser chamado de denominador.
[00328] A Figura 20 é um exemplo mostrando valores de normDiff e idx, etc., com diff estando em uma faixa de O a 63. A normalização é realizada em diff com o uso de um valor de deslocamento de escala sc equivalente ao valor logarítmico de 2, de modo que normDiff é alterado para um valor entre 16 e 31. idx é um valor obtido pela subtração de um valor especificado de normDiff e está na faixa de O a 15. A normalização é realizada em diffNorm de acordo com diff, de modo que normDiff e idx sejam faixas de valores que se repetem em cada grupo obtido pela di- visão de diff. O tamanho do grupo é 1, 1, 2, 4, 8, 16, e 32......, ese o tamanho do grupo for maior que o tamanho da tabela, idx repete, em um grupo, um valor obtido dividindo-se o tamanho da tabela pelo tama- nho do grupo.
[00329] A Figura21é um exemplo mostrando valores de idx, sc, etc.,
com diff estando em uma faixa de O a 63. A Figura 21 indica o valor DivTableM 2N[idx] e o valor de deslocamento sc1, sendo que o valor DivTableM 2N[idx] é um valor de uma tabela inversa referido por idx. Além disso, sc para derivação do valor de deslocamento também é re- gistrado.
[00330] A porção de derivação de parâmetros de predição de CCLM 310442 deriva, a partir do valor de diferença de luminância diff, o índice idx usado para se referir à tabela inversa DivTableM 2N e deriva um valor v equivalente ao inverso de diff.
difft= Y MAX- Y MIN sc = floor(log2 (diff)) normDiff = (diff << 4) >> sc idx = normDiff - 16 v = (DivTableM 2N[idx]|8) DivTableM 2N[16] = (O, 7, 6, 5, 5, 4,4,3,3,2,2,1,1,1,1,0)
[00331] Aqui, o índice idx da tabela inversa é derivado subtraindo-se um valor próprio especificado (2'N, 16 se N = 4) do valor normDiff obtido por deslocamento à direita de diff por meio do valor de deslocamento de escala sc. Dessa forma, apenas o inverso de diff (1/diff) mostrado no intervalo DO' da Figura 18 é armazenado na tabela, e o inverso de diff no intervalo D-1' pode ser derivado a partir do intervalo DO', alcançando- se, assim, o efeito de reduzir ainda mais o tamanho da tabela. Entre- tanto, N do exemplo de processamento 8 é, por exemplo, o número de elementos do intervalo DO' da Figura 18 e tem um significado diferente do N que representa o número de elementos do intervalo DO usado nos exemplos de processamento 3 e 7. Deve-se notar que em vez da tabela inversa, os valores da tabela inversa para os quais os elementos da tabela inversa são ajustados para bits de um número de escala de (1 << m) também podem ser usados, conforme descrito abaixo. Além disso,
no caso descrito acima, o número de elementos do número de elemen- tos (2º'N) da tabela inversa DivTableM 2N é definido como 16 (N=4) e é definido como a precisão da tabela inversa, P = 4. Ne P não se limitam ao exposto acima. Se outros valores de N e P forem usados, a derivação é realizada com o uso das seguintes fórmulas.
normDiff = (diff << N) >> sc msb = 1<<(P-1) v = (DivTableM 2N[normDiff - (1 << N)]jmsb) v = (DivTableM 2N[idx]|msb) DivTableM 2N[16] = (O, 7, 6, 5, 5, 4,4,3,3,2,2,1,1,1,1,0)
[00332] A porção de derivação de parâmetros de predição de CCLM 310442 deriva, a partir do valor de diferença de crominância diffC, a variável expC para limitar a largura de bit do parâmetro a.
diffo = C Y MAX-C Y MIN expC = floor(log2 (abs (diffC))) + 1
[00333] A porção de derivação de parâmetros de predição de CCLM 310442 deriva, por deslocamento à direita adicional de diffC * v por expC (= shift a), o parâmetro a que tem um número limitado de bits, conforme descrito abaixo.
add = (1 << expC) >> 1 a = (diffC * v + add) >> expC
[00334] Dessa forma, a largura de bit (precisão) de a pode ser man- tida fixa independentemente do valor de diffC.
[00335] A porção de derivação de parâmetros de predição de CCLM 310442 ajusta o valor de shiftA pela adição de sc1 derivado com o uso de diff para um valor fixo equivalente a baseA e subtraindo expC deri- vado com o uso de diffC.
sc1 = sc + ((normDiffl=16)?1:0) ShiftA = 3 + sc1 — expC
[00336] Aqui, shiftA é derivado a partir de um valor fixo especificado
(3, ou seja, P - 1), sc1 é obtido corrigindo-se o valor de deslocamento de escala sc correspondente ao valor logarítmico de diff, e expC é o valor logarítmico de diffC, de modo que a largura de bit de a não au- menta.
[00337] A porção de derivação de parâmetros de predição de CCLM 310442 pode derivar o índice idx da tabela inversa usando bits menos significativos (& 15) do valor normDiff derivados por deslocamento à di- reita de diff por meio do valor de deslocamento de escala sc.
diff= Y MAX-Y MIN sc = floor(log2 (diff)) normDiff = (diff << 4) >> sc idx = normDiff & 15 v = (DivTableM 2N[idx]|8) sc1 = sc + ((normDiff & 15)?1:0) ShiftA = 3 + sc1 - expC add = (1 << expC) >> 1 a = (diffC * v + add) >> expC
[00338] De acordo com essa configuração, a faixa do índice da ta- bela inversa de referência é limitada pela extração dos bits menos sig- nificativos, alcançando, assim, o efeito de se reduzir ainda mais o tama- nho da tabela. A derivação de shiftA é realizada com o uso do valor fixo especificado (3), sc1 é derivado com o uso de sc correspondente ao valor logarítmico de diff e ao menos uma cadeia de bits menos signifi- cativos de normDiff, e expC é o valor logarítmico de diffC, de modo que a largura de bit de a não aumenta.
[00339] A porção de derivação de parâmetros de predição de CCLM 310442 deriva o parâmetro b com o uso do parâmetro a que tem uma largura de bit limitada.
b=C Y MIN-((a*Y MIN) >> shiftA)
[00340] A porção de filtro de predição de CCLM 310443 produz uma imagem de predição predSamples[][] com o uso da fórmula (CCLM - 1) e com o uso dos parâmetros de predição de CCLM (a, b) e o desloca- mento shiftA ajustado descrito acima.
[00341] “Deve-se notar que, conforme mostrado no exemplo de pro- cessamento 6, expC pode ser ajustado para uma constante especifi- cada independentemente de diffC. Entretanto, expC é menor que um valor obtido pela adição da profundidade de bit bitDepth da imagem a P (o número de bits da parte de mantissa na representação exponencial de (2M16/diff) com um número-base de 2). Por exemplo, se bitDepth = 10eP=4, então expC é ajustado para ser menor que 14.
expC < bitDepth + P
[00342] Note que o pseudocódigo para todo o processamento des- crito acima é mostrado abaixo.
LMDivTableSig2[1 << 4] = (0, 7, 6, 5, 5, 4, 4, 3, 3, 2,2, 1,1, 1,1,0) difft= Y MAX- Y MIN diffo = C Y MAX-C Y MIN sc = mylog (diff) normDiff = diff << 4 >> sc v = LMDivTableSig2[normDiff - 16]/8 sc1 = sc + (normDiff! =16) expC = mylog (abs (diffC)) + 1 add = 1 << expC >> 1 a = (diffC * v + add) >> expC ShiftA = 3 + sc1 - expC b=C Y MIN -rightShift (a * Y MIN, shiftA)
[00343] Aqui, rightShift(value, shift) = (shift >= 0)?(value >> shift):(value << -shift)
mylog(x) = (x <= 0)?-1:31 - clz(x)
[00344] A variável independente na função clz descrita acima tem uma largura de 32 bits. Variação do exemplo de processamento 8)
[00345] A consulta da tabela inversa no exemplo de processamento 8 pode ser substituída por valores de tabela inversa para processa- mento. Certamente, no exemplo de processamento 9 descrito mais adi- ante, os valores da tabela inversa também podem ser usados em vez da tabela inversa.
difft= Y MAX- Y MIN sc = floor(log2 (diff)) normDiff = (diff << 4) >> sc idx = normDiff - 16 v = (DivTableM 2N[idx]|8) DivTableM 2N[16] = (O, 7, 6, 5, 5, 4,4,3,3,2,2,1,1,1,1,0)
[00346] Além disso, derivar idx a partir de normDiff pode também ser da forma descrita a seguir.
idx = normDiff & 15
[00347] Por exemplo, a tabela descrita acima é de 3 bits * 16 = 48 bits, de modo que um valor DivTbIVal (por exemplo, representado de forma hexadecimal por 0x89999aabbccddef8) pode ser usado mesmo que a tabela não seja usada. Nesse caso, DivT bIVal representa um valor hexadecimal v no qual cada bit corresponde a idx.
[00348] “Na configuração de uso desse valor da tabela inversa, a por- ção de derivação de parâmetros de predição de CCLM 310442 deriva v com o uso da fórmula abaixo.
v = (0x89999aabbccddef8 >> (idx << 2)) & Oxf.
[00349] De acordo com o descrito acima, o valor da tabela inversa é deslocado à direita com base no idx derivado com o uso do valor de deslocamento de escala sc, e a extração é executada por meio de pro- cessamento de máscara usando a operação lógica AND (&, AND bit a bit), de modo que uma porção de entrada específica do valor da tabela inversa seja extraída. Portanto, v também pode ser derivado sem uma tabela inversa. A derivação de a é realizada com o uso de v, alcan- çando-se, assim, o efeito de remover a tabela inversa da derivação de a, em adição ao efeito do exemplo de processamento 8 descrito acima.
[00350] Além disso, o processamento de idx << 2 para configurar o Índice como sendo uma unidade de 4 bits pode ser omitido, e o proces- samento abaixo é executado. normDiff = (diff << 6 >> x) & 60; v= (0x89999aabbccddef8 >> normDiff) & Oxf;
[00351] —Pararesumir adicionalmente o exposto acima, a tabela pode ser representada como um valor de m * n bits atribuindo-se cada ele- mento i (i = O... n-1, n= 2'N) da tabela inversa ao (i * m)-ésimo bit con- tado a partir do bit menos significativo (LSB) do valor da tabela inversa DivTbIVal. A configuração é feita para definir m como sendo igual a ou maior que o valor logarítmico do valor máximo da tabela inversa + 1 (igual a ou maior que P - 1). Por exemplo, se o valor máximo da tabela inversa for 7 (P = 4), ceil(log2 (7 + 1)) = 3 para 3 ou mais bits são usados para m.
[00352] DivTbiVal = DivTableM 2N[0] + DivTableM 2N[1] * m + DivTableM 2N[2] * m * m*...
[00353] “Deve-se notar que a largura de bit m de cada entrada do va- lor da tabela inversa pode ser ajustada para 3 bits.
[00354] —Alternativamente, v = ((0x49293725bb8 >> (idx * 3)) & Ox7|8).
[00355] Deve-se notar que ao criar um valor de tabela inversa, deve- se prestar atenção se a ordem da mesma é diferente da ordem de ele- mentos da tabela inversa. Um exemplo de pseudocódigo do método de derivação para os valores de tabela inversa é mostrado abaixo.
[00356] Geração de uma soma de valor de tabela inversa (= DivTbIVal) com 4 bits mais último msb (8) s=[0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0] sum = O; (0.. 15).each(lilsum += ((s[i] + 8) << (i * 4))) printf("%t018x%n", sum)
[00357] Geração do valor de tabela inversa no caso de 3 bits sum=0;(0..15).each(lilsum += ((s[i]l) << (i * 3)););printf("%t 018x%n", sum)
[00358] Deve-se notar que, o pseudocódigo para todo o processa- mento descrito acima é mostrado abaixo.
difft= Y MAX- Y MIN diffo = C Y MAX-C Y MIN sc = mylog (diff) idx = (diff << 4 >> sc) & 15 v = (0x89999aabbccddef8 >> (idx<<2)) & Oxf sc1 = sc + ((idxl=0)?1:0) expC = mylog (abs (diffC)) + 1 add = (1 << expC) >> 1 a = (diffC * v + add) >> expC ShiftA = 3 + sc1 - expC b=C Y MIN -rightShift (a * Y MIN, shiftA) Exemplo de processamento 9)
[00359] No texto a seguir, no exemplo de processamento 9, é des- crito um exemplo de processamento que limita adicionalmente a faixa do valor de deslocamento shiftA.
[00360] A Figura 22 é um diagrama mostrando um outro exemplo de fluxo de dados de um exemplo de processamento de acordo com a pre- sente invenção. A Figura 22 representa ações de uma porção de deri- vação de coeficiente de divisão de número inteiro fornecida na porção de derivação de parâmetros de predição de CCLM 310442 do exemplo de processamento 9 nesta modalidade.
[00361] A porção de derivação de parâmetros de predição de CCLM 310442 deriva, a partir do valor de diferença de luminância diff, o índice idx usado para se referir à tabela inversa DivTableM 2N, e deriva um valor v equivalente ao inverso de diff.
difft= Y MAX- Y MIN sc = floor(log2 (diff)) normDiff = (diff << 4) >> sc idx = normDiff & 15 v = (DivTableM 2N[idx]|8) DivTableM 2N[16] = (O, 7, 6, 5, 5, 4,4,3,3,2,2,1,1,1,1,0)
[00362] Aqui, o índice idx da tabela inversa é derivado a partir dos bits menos significativos do valor normDiff do diff normalizado.
[00363] A porção de derivação de parâmetros de predição de CCLM 310442 deriva, a partir do valor de diferença de crominância diffC, a variável expC para limitar a largura de bit do parâmetro a.
diffo = C Y MAX-C Y MIN expC = floor(log2 (abs (diffC))) + 1
[00364] Adicionalmente, a porção de derivação de parâmetros de predição de CCLM 310442 deriva o parâmetro a que tem um número limitado de bits por deslocamento à direita de diffC * v por expC (= shift a) conforme descrito abaixo.
add = (1 << expC) >> 1 a = (diffC * v + add) >> expC
[00365] A porção de derivação de parâmetros de predição de CCLM 310442 ajusta o valor de shiftA pela adição de sc1 derivado com o uso de diff para um valor fixo equivalente a baseA e subtraindo expC deri- vado com o uso de diffC.
sc1 = sc + ((idxl=0)?1:0) ShiftA = 3 + sc1 — expC
[00366] Aqui, shiftA é introduzido para ajustar a precisão do valor re- presentado por a, mas a faixa do valor de shiftA é grande. Quando a faixa de shiftA aumenta, além do fato de que a escala de um "barrel shifter" (circuito lógico de deslocamento variável) aumenta no caso de hardware, a faixa do valor de b também aumenta quando o valor de ShiftA é negativo. Dessa forma, no exemplo de processamento 9, a faixa do valor de shiftA é limitada à faixa especificada. A porção de derivação de parâmetros de predição de CCLM 310442 pode limitar o valor de ShiftA a uma faixa especificada.
[00367] Por exemplo, se o valor de shiftA for menor que um valor especificado minTH, então o valor de shiftA é limitado a minTH. Para o valor de minTH, por exemplo, O a 2 são adequados. Um valor de shiftA negativo significa um deslocamento à direita em vez de um desloca- mento à esquerda, e como resultado, a faixa do valor aumenta.
if (ShiftA < minTH) ( ShiftA = minTH )
[00368] Além disso, se o valor de deslocamento for menor que o va- lor especificado minTH, então o valor de a pode ser ajustado para o valor máximo especificado maxA ou -maxA ou O (no caso de a==0) de acordo com o sinal de a.
if (ShiftA < minTH) ( ShiftA = minTH a = sign (a) * maxA )
[00369] — Aqui, por exemplo, minTH = 1 e maxA = 15. Deve-se notar que o valor é definido multiplicando-se o valor máximo maxA nos valores absolutos pelo sinal de a. O valor é ajustado para -maxA se o sinal de a for negativo; o valor é ajustado para maxA se o sinal de a for positivo; a é ajustado para O se a for O. Conforme já descrito adicionalmente na fórmula (a - 1), na configuração de max a bits = P + 1 (a configuração de shift a = expC = floor(log2(diffC)) + 1), a largura de bit de a é P bits no caso do valor absoluto, e é P + 1 bits na base de um valor com sinal, de modo que a faixa de a pode ser ajustada para -(1 << P) a (1 << P), conforme mostrado abaixo.
if (ShiftA < minTH) ( ShiftA = minTH a = (a == 0)?0:((a > 0)?(1 << P) - 1:-(1 << P)) ) Deve-se notar que quando maxA = (1 << P) - 1 é usado como um valor máximo comum entre valores absolutos se a for negativo ou positivo, a seguinte configuração pode ser realizada conforme des- crito acima.
a = sign(a) * ((1 << P) - 1)
[00370] Além disso, a==0,ou seja, o coeficiente angular sendo O é O caso em que diffC == 0. Se diffC == 0, então uma ramificação realiza outro processamento após a derivação de diffC. Por exemplo, a confi- guração a seguir pode ser executada; a e shiftA podem ser derivados com o uso do método anteriormente mencionado apenas se diffC! = O. if (diffo == 0) ( ShiftA = O a=0 )
[00371] A porção de derivação de parâmetros de predição de CCLM 310442 deriva o parâmetro b com o uso de shiftA que tem um valor limitado e do parâmetro a que tem uma largura de bit limitada.
b=C Y MIN-((a*Y MIN) >> shiftA)
[00372] A porção de filtro de predição de CCLM 310443 produz uma imagem de predição predSamples[][] com o uso da fórmula (CCLM - 1) e com o uso dos parâmetros de predição de CCLM (a, b) e o desloca- mento shiftA ajustado descrito acima.
[00373] De acordo com a configuração descrita acima, ajustar adici- onalmente o limite inferior minTH do shiftA para uma operação de des- locamento após a multiplicação do parâmetro a em uma predição de CCLM obtém o efeito de reduzir a complexidade da operação de deslo- camento do shiftA na predição com o uso do parâmetro a e da derivação com o uso do parâmetro b, e o efeito de fazer com que a faixa do parà- metro b seja menor.
[00374] Além disso, se o deslocamento for menor que o valor espe- cificado, então na configuração de ajuste de um valor especificado com base no sinal de a para a, o ajuste do coeficiente angular a para um valor próximo a um coeficiente angular original obtém o efeito de au- mentar a precisão da predição de CCLM em comparação com o ajuste do coeficiente angular a de outra maneira.
[00375] Deve-se notar que se o efeito de limitar a faixa do parâmetro b for alcançado apenas evitando-se que o coeficiente angular a fique próximo à perpendicular, o seguinte método também pode ser usado.
if (ShiftA < minTH) ( ShiftA = O a=0 )
[00376] Nesse caso, se shiftA for um valor menor que o valor espe- cificado, então a = O. Ainda nesse caso, é determinado exclusivamente que o valor de bé b=C Y MIN.
[00377] Deve-se notar que, conforme inicialmente descrito, o valor de diferença de luminância (diff) e o valor de diferença de crominância (diffC), no caso de cálculo do parâmetro a, usam um valor de diferença entre um valor máximo Y MAX de cada luminância e um valor mínimo Y MIN da luminância, e um valor de diferença entre um valor máximo C Y MAXda crominância e um valor mínimo C Y MIN da crominância, mas não se limitam a isso. Deve-se notar que, no caso de cálculo do parâmetro b, Y MINeC Y MIN são usados como valores representa- tivos da luminância e da crominância necessárias, mas os valores re- presentativos não se limitam a isso. Outros exemplos)
[00378] Deve-se notar que, nos exemplos de processamento supra- citados, o exemplo de redução da quantidade de armazenamento para armazenar a tabela para o processamento de CCLM é descrito, mas o conceito técnico da presente invenção também pode ser usado para re- duzir uma quantidade de armazenamento para armazenar outras infor- mações e uma largura de bit de multiplicação. Por exemplo, o conceito técnico da presente invenção também é aplicável a uma tabela para de- rivação de um vetor de movimento convertido.
[00379] Uma porção de predição de CCLM de acordo com uma so- lução da presente invenção é uma porção de predição de CCLM para gerar uma imagem de predição por meio da predição de CCLM, sendo que a porção de predição de CCLM inclui: uma porção de derivação de parâmetros de predição de CCLM, para derivar parâmetros de predição de CCLM (a, b) com o uso de um valor de diferença de luminância, um valor de diferença de crominância e uma tabela; e uma porção de filtro de predição de CCLM, para gerar uma imagem de predição de cromi- nância com o uso de uma imagem de referência de luminância e dos parâmetros de predição de CCLM (a, b), sendo que a porção de deriva- ção de parâmetros de predição de CCLM deriva o parâmetro de predi- ção de CCLM a deslocando um valor obtido pela multiplicação de um elemento de uma tabela referido pelo valor de diferença de luminância pelo valor de diferença de crominância.
[00380] Na porção de predição de CCLM de acordo com uma solu- ção da presente invenção, a porção de derivação de parâmetros de pre- dição de CCLM deriva um valor de diferença de luminância a partir de um primeiro pixel com o maior valor de luminância em um bloco contíguo e de um segundo pixel com o menor valor de luminância no bloco con- tíguo, deriva um valor de diferença de crominância a partir dos valores de pixel de crominância do primeiro pixel e do segundo pixel, deriva um valor de deslocamento de escala sc correspondente ao valor de dife- rença de luminância e multiplica um valor na tabela pelo valor de dife- rença de crominância, sendo que o valor da tabela é referido por um índice idx resultante do deslocamento à direita do valor de diferença de luminância por sc, e o parâmetro de predição de CCLM a é derivado pelo deslocamento adicional do valor obtido por meio de multiplicação.
[00381] Na porção de predição de CCLM de acordo com uma solu- ção da presente invenção, a porção de derivação de parâmetros de pre- dição de CCLM multiplica um valor obtido pela adição de um desloca- mento ao valor da tabela referido por idx pelo valor de diferença de cro- minância.
[00382] Na porção de predição de CCLM de acordo com uma solu- ção da presente invenção, a porção de derivação de parâmetros de pre- dição de CCLM deriva um primeiro valor de deslocamento que corres- ponde a um valor logarítmico de um valor de diferença de crominância absoluta, multiplica o valor da tabela referido por idx pelo valor de dife- rença de crominância e deriva o parâmetro de predição de CCLM des- locando adicionalmente o valor obtido pela multiplicação por um valor de deslocamento expC.
[00383] Na porção de predição de CCLM de acordo com uma solu- ção da presente invenção, a porção de derivação de parâmetros de pre- dição de CCLM deriva um segundo valor de deslocamento que corres- ponde ao valor logarítmico do valor de diferença de luminância diff, e deriva o parâmetro de predição de CCLM b com o uso de um valor de crominância do segundo pixel, o parâmetro de predição de CCLM a, um valor de luminância do segundo pixel, o primeiro valor de deslocamento e o segundo valor de deslocamento.
[00384] Na porção de predição de CCLM de acordo com uma solu- ção da presente invenção, o primeiro valor de deslocamento e o se- gundo valor de deslocamento são derivados com referência a uma ta- bela. Implementação de hardware e implementação de software)
[00385] Além disso, os blocos no dispositivo de decodificação de imagens em movimento 31 e no dispositivo de codificação de imagens em movimento 11 descritos acima podem ser implementados por hardware com o uso de um circuito lógico formado em um circuito inte- grado (Cl), ou podem ser implementados por software com o uso de uma unidade central de processamento (CPU - "Central Processing Unit").
[00386] Neste último caso, os dispositivos descritos acima incluem: uma CPU para executar comandos de um programa para implementar as funções, uma memória somente de leitura (ROM) para armazenar o programa, uma memória de acesso aleatório (RAM) para carregar o pro- grama e um dispositivo de armazenamento (mídia de armazenamento) como uma memória para armazenar o programa e vários dados. O ob- jetivo das modalidades da presente invenção pode ser alcançado da seguinte maneira: o software para implementar as funções descritas acima, a saber, código de programa de um programa de controle para os dispositivos acima (programa executável, programa de código inter- mediário, programa fonte), é recodificado em uma mídia de gravação de uma maneira legível por computador, sendo que a mídia de gravação é fornecida aos dispositivos acima, e o computador (ou CPU ou MPU) lê o código de programa gravado na mídia de gravação e executa o mesmo.
[00387] “Exemplos da mídia de gravação descrita acima incluem: fitas como uma fita magnética e uma fita cassete, discos que incluem um disco magnético como um disquete (marca registrada)/disco rígido e um disco óptico como uma memória somente de leitura em disco compacto portátil (CD-ROM )/disco magneto-óptico (MO)/minidisco (MD)/disco ver- sátil digital (DVD, marca registrada)/CD regravável (CD-R)/disco Blu-ray (marca registrada), cartões como um cartão de CI (incluindo um cartão de memória)/cartão óptico, memórias formadas por dispositivos semi- condutores como ROM de máscara/memória somente de leitura progra- mável (EPROM)/memória somente de leitura programável e apagável eletronicamente (EEPROM)/ROM flash, ou circuitos lógicos como um dispositivo lógico programável (DLP) e uma matriz de portas programá- vel em campo (FPGA).
[00388] Além disso, os dispositivos descritos acima podem também ser configurados para serem conectáveis a uma rede de comunicação e para serem fornecidos com o código de programa acima por meio da rede de comunicação. A rede de comunicação não é especificamente limitada, contanto que o código de programa possa ser transmitido. Por exemplo, a Internet, uma intranet, uma extranet, uma rede local (LAN), uma rede digital de serviços integrados (ISDN), uma rede de valor agre- gado (VAN), uma rede de comunicação de televisão de antena comuni- tária/televisão por cabo (CATV), uma rede privada virtual (VPN), uma rede telefônica, uma rede de comunicação móvel, uma rede de comuni- cação via satélite, e similares podem ser utilizadas. Além disso, os meios de transmissão que formam a rede de comunicação não se limi- tam a uma configuração ou tipo específico, contanto que o código de programa possa ser transmitido. Por exemplo, um meio de transmissão conectado com fio como a interface serial IEEE 1394 do Institute of Elec- trical and Electronic Engineers, um barramento USB, uma portadora de linha de transmissão de energia elétrica, uma linha de TV por cabo, uma linha telefônica, uma linha digital assimétrica para assinante (ADSL) e um meio de transmissão sem fio como adaptador de infravermelho da Infrared Data Association (IDA) e um controlador remoto, Bluetooth (marca registrada), padrão IEEE 802.11 de comunicação sem fio, alta taxa de dados (HDR), comunicação de campo próximo (NFC), aliança para redes domésticas digitais (DLNA, marca registrada), uma rede de telefonia celular, um canal de satélite, uma rede de transmissão por ra- diodifusão digital terrestre estão disponíveis. Deve-se notar que as mo- dalidades da presente invenção podem também ser implementadas sob a forma de um sinal de dados de computador embutido em uma onda portadora na qual o código de programa acima é incorporado por trans- missão eletrônica.
[00389] As modalidades da presente invenção não se limitam às mo- dalidades acima e podem ser modificadas de modo variado dentro do escopo das reivindicações. Ou seja, as modalidades obtidas pela com- binação de soluções técnicas que são adequadamente modificadas dentro do escopo das reivindicações também estão incluídas no escopo técnico da presente invenção.
Lista de sinais de referência 31 Dispositivo de decodificação de imagem 301 Porção de decodificação de entropia 302 Porção de decodificação de parâmetros 303 Porção de decodificação de parâmetros de predição interquadro 304 Porção de decodificação de parâmetros de predição intraquadro 308 Porção de geração de imagens de predição 309 Porção de geração de imagens de predição interquadro 310 Porção de geração de imagens de predição intraquadro 3104 Porção de predição 31044 Porção de predição de CCLM (dispositivo de geração de imagens de predição)
310441 Porção de redução de taxa de amostragem
310442 Porção de derivação de parâmetros de predição de CCLM (por-
ção de derivação de parâmetros)
310443 Porção de filtro de predição de CCLM
311 Porção de quantização inversa/transformada inversa
312 Porção de adição
11 Dispositivo de codificação de imagens
101 Porção de geração de imagens de predição
102 Porção de subtração
103 Porção de transformada/quantização
104 Porção de codificação de entropia
105 Porção de quantização inversa/transformada inversa
107 Filtro de circuito
110 Porção de determinação de parâmetros de codificação
111 Porção de codificação de parâmetros
112 Porção de codificação de parâmetros de predição interquadro
113 Porção de codificação de parâmetros de predição intraquadro

Claims (10)

REIVINDICAÇÕES
1. Dispositivo de geração de imagens de predição para deri- var uma imagem de predição de uma imagem de crominância ao usar- se uma imagem de luminância, o dispositivo de geração de imagens de predição caracterizado pelo fato de que compreende: uma porção de derivação de parâmetros de predição para: derivar um primeiro valor de luminância na imagem de lumi- nância correspondendo a uma primeira posição; derivar um primeiro valor de crominância na imagem de cro- minância correspondendo à primeira posição; derivar um segundo valor de luminância na imagem de lumi- nância correspondendo a uma segunda posição; derivar um segundo valor de crominância na imagem de cro- minância correspondendo à segunda posição; derivar um primeiro valor de diferença que indica uma dife- rença entre o primeiro valor de luminância e o segundo valor de lumi- nância; derivar um segundo valor de diferença que indica uma dife- rença entre o primeiro valor de crominância e o segundo valor de cromi- nância; e derivar um valor de deslocamento para uma operação de deslocamento, um primeiro parâmetro, e um segundo parâmetro ao usar-se o primeiro valor de diferença e o segundo valor de diferença; e uma porção de filtro de predição de modelo linear de compo- nente cruzado (CCLM), para derivar a imagem de predição ao usar-se o primeiro parâmetro, o segundo parâmetro e o valor de deslocamento, a porção de derivação de parâmetros de predição derivando o segundo parâmetro ao usar-se o segundo valor de luminância, o se- gundo valor de crominância, o primeiro parâmetro, e o valor de desloca- mento e de acordo com a fórmula:
b=C Y MIN-((a*Y MIN) >> shiftA) em que: C Y MIN é o segundo valor de crominância, a é o primeiro parâmetro, Y MIN é o segundo valor de luminância, e shiftA é o valor de deslocamento; e o valor de deslocamento é ajustado para um primeiro limiar, se um terceiro valor resultando a partir da adição de um primeiro valor especificado a um primeiro valor derivado por utilizar o primeiro valor de diferença e subtrair um segundo valor derivado por utilizar o segundo valor de diferença, for menor do que o primeiro limiar.
2. Dispositivo de geração de imagens de predição, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro parâà- metro é ajustado para um valor resultante de multiplicar um segundo valor especificado por um sinal do primeiro parâmetro se o terceiro valor for menor que o primeiro limiar.
3. Dispositivo de geração de imagens de predição, de acordo com a reivindicação 2, caracterizado pelo fato de que o segundo valor especificado é 15.
4. Dispositivo de decodificação de imagens em movimento, caracterizado pelo fato de que decodifica uma imagem ao adicionar um residual à imagem de predição derivada pelo dispositivo de geração de imagens de predição como definido na reivindicação 1.
5. Dispositivo de codificação de imagens em movimento, ca- racterizado pelo fato de que executa codificação ao derivar um residual a partir de uma diferença entre uma imagem de entrada e a imagem de predição derivada pelo dispositivo de geração de imagens de predição como definido na reivindicação 1.
6. Método de geração de imagens de predição para derivar uma imagem de predição de uma imagem de crominância ao usar-se uma imagem de luminância, o método de geração de imagens de pre- dição caracterizado pelo fato de que compreende:
derivar um primeiro valor de luminância na imagem de lumi- nância correspondendo a uma primeira posição;
derivar um primeiro valor de crominância na imagem de cro- minância correspondendo à primeira posição;
derivar um segundo valor de luminância na imagem de lumi- nância correspondendo a uma segunda posição;
derivar um segundo valor de crominância na imagem de cro- minância correspondendo à segunda posição;
derivar um primeiro valor de diferença que indica uma dife- rença entre o primeiro valor de luminância e o segundo valor de lumi- nância;
derivar um segundo valor de diferença que indica uma dife- rença entre o primeiro valor de crominância e o segundo valor de cromi- nância;
derivar um valor de deslocamento para uma operação de deslocamento e um primeiro parâmetro ao usar-se o primeiro valor de diferença e o segundo valor de diferença; e derivar um segundo parâmetro ao usar-se o segundo valor de luminância, o segundo valor de crominância, o primeiro parâmetro e o valor de deslocamento, o segundo parâmetro sendo derivado de acordo com a seguinte fórmula:
b=C Y MIN-((a*Y MIN) >> shiftA) em que:
C Y MIN é o segundo valor de crominância, a é o primeiro parâmetro, Y MIN é o segundo valor de luminância, e shiftA é o valor de deslocamento; e o valor de deslocamento é ajustado para um primeiro limiar se um terceiro valor resultando de adicionar um primeiro valor especifi- cado a um primeiro valor derivado ao usar-se o primeiro valor de dife- rença e subtrair um segundo valor derivado ao usar-se o segundo valor de diferença for menor do que o primeiro limiar.
7. Dispositivo de geração de imagens de predição, de acordo com a reivindicação 1, caracterizado pelo fato de que o valor de deslo- camento é ajustado para o terceiro valor se o terceiro valor for maior do que ou igual ao primeiro limiar.
8. Método de geração de imagens de predição, de acordo com a reivindicação 6, caracterizado pelo fato de que o valor de deslo- camento é ajustado para o terceiro valor se o terceiro valor for maior do que ou igual ao primeiro limiar.
9. Método de geração de imagens de predição, de acordo com a reivindicação 6, caracterizado pelo fato de que o primeiro parâà- metro é ajustado para um valor resultante de multiplicar um segundo valor especificado por um sinal do primeiro parâmetro se o terceiro valor for menor que o primeiro limiar.
10. Método de geração de imagens de predição, de acordo com a reivindicação 9, caracterizado pelo fato de que o segundo valor especificado é 15.
BR112021013110-8A 2019-01-02 2019-12-26 Dispositivo de geração de imagens de predição, dispositivo de decodificação de imagens em movimento, dispositivo de codificação de imagens em movimento e método de geração de imagens de predição BR112021013110A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962787646P 2019-01-02 2019-01-02
US62/787,646 2019-01-02
PCT/JP2019/051080 WO2020141599A1 (ja) 2019-01-02 2019-12-26 予測画像生成装置、動画像復号装置、動画像符号化装置、および予測画像生成方法

Publications (1)

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

Family

ID=71407197

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021013110-8A BR112021013110A2 (pt) 2019-01-02 2019-12-26 Dispositivo de geração de imagens de predição, dispositivo de decodificação de imagens em movimento, dispositivo de codificação de imagens em movimento e método de geração de imagens de predição

Country Status (7)

Country Link
US (1) US20210392344A1 (pt)
EP (1) EP3908003A4 (pt)
CN (1) CN113273212A (pt)
AU (1) AU2019419763B2 (pt)
BR (1) BR112021013110A2 (pt)
RU (1) RU2761512C1 (pt)
WO (1) WO2020141599A1 (pt)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113170169B (zh) * 2018-12-07 2024-01-30 夏普株式会社 预测图像生成装置、运动图像解码装置、运动图像编码装置以及预测图像生成方法
KR20220049000A (ko) 2019-08-23 2022-04-20 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 참조 픽처 리샘플링에서의 클리핑
KR20220080107A (ko) 2019-10-23 2022-06-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 참조 픽처 리샘플링을 위한 시그널링
JP7395727B2 (ja) * 2019-10-23 2023-12-11 北京字節跳動網絡技術有限公司 ビデオ・データを処理する方法、装置及び記憶方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5509390B2 (ja) * 2010-09-03 2014-06-04 ドルビー ラボラトリーズ ライセンシング コーポレイション ビデオ符号化および処理のための照明補償および遷移のための方法およびシステム
TW201309036A (zh) * 2011-06-28 2013-02-16 Samsung Electronics Co Ltd 使用亮度成分影像的預測色度成分影像用的裝置與方法
US20180302641A1 (en) * 2015-10-05 2018-10-18 Sharp Kabushiki Kaisha Image predicting device for image decoding device or image encoding device
JP2018056685A (ja) * 2016-09-27 2018-04-05 株式会社ドワンゴ 画像符号化装置、画像符号化方法、及び画像符号化プログラム、並びに、画像復号装置、画像復号方法、及び画像復号プログラム
JP2020031252A (ja) * 2016-12-22 2020-02-27 シャープ株式会社 画像復号装置及び画像符号化装置
WO2018119740A1 (zh) * 2016-12-28 2018-07-05 华为技术有限公司 色度预测的方法及装置
EP3618439A4 (en) * 2017-04-28 2020-09-02 Sharp Kabushiki Kaisha IMAGE DECODING DEVICE AND IMAGE CODING DEVICE
WO2018236028A1 (ko) * 2017-06-21 2018-12-27 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US20220078405A1 (en) * 2018-11-05 2022-03-10 Interdigital Vc Holdings, Inc. Simplifications of coding modes based on neighboring samples dependent parametric models
JP7304153B2 (ja) * 2018-12-27 2023-07-06 Kddi株式会社 動画像復号装置、動画像復号方法及びプログラム

Also Published As

Publication number Publication date
AU2019419763A1 (en) 2021-07-29
EP3908003A1 (en) 2021-11-10
US20210392344A1 (en) 2021-12-16
RU2761512C1 (ru) 2021-12-09
WO2020141599A1 (ja) 2020-07-09
AU2019419763B2 (en) 2022-08-25
CN113273212A (zh) 2021-08-17
EP3908003A4 (en) 2022-09-14

Similar Documents

Publication Publication Date Title
AU2019384016B2 (en) An encoder, a decoder and corresponding methods for inter prediction
US11870986B2 (en) Encoder, a decoder and corresponding methods using an adaptive loop filter
BR112021013110A2 (pt) Dispositivo de geração de imagens de predição, dispositivo de decodificação de imagens em movimento, dispositivo de codificação de imagens em movimento e método de geração de imagens de predição
BR112021010416A2 (pt) Codificador, decodificador e métodos correspondentes para realizar desblocagem de croma para blocos que usam codificação de croma em conjunto
BR112021011319A2 (pt) Aparelho de geração de imagem de predição, aparelho de decodificação de vídeo, aparelho de codificação de vídeo e método de geração de imagem de predição
WO2020224545A1 (en) An encoder, a decoder and corresponding methods using an adaptive loop filter
BR112021003999A2 (pt) relação entre elementos de restrição de partição
AU2024201345A1 (en) Method and apparatus for intra smoothing
US20220377326A1 (en) Encoder, decoder and corresponding methods for adaptive loop filtering
CN114830665A (zh) 仿射运动模型限制
BR112021012708A2 (pt) Método e aparelho de modelagem linear de componente cruzado para predição intra
BR112021009833A2 (pt) codificador, decodificador e métodos correspondentes para predição inter
US20230262224A1 (en) Moving image decoding method using chrominance format and intra-frame prediction mode
CN114424554B (zh) 色度qp偏移表指示和推导的方法和装置
US20240187646A1 (en) Prediction image generation apparatus, video decoding apparatus, video coding apparatus, and prediction image generation method
JP2021010050A (ja) 動画像符号化装置、動画像復号装置、およびフィルタ装置