BR122021007351A2 - Método de codificação de imagem baseado em predição intra usando lista de mpm e dispositivo para o mesmo - Google Patents
Método de codificação de imagem baseado em predição intra usando lista de mpm e dispositivo para o mesmo Download PDFInfo
- Publication number
- BR122021007351A2 BR122021007351A2 BR122021007351-1A BR122021007351A BR122021007351A2 BR 122021007351 A2 BR122021007351 A2 BR 122021007351A2 BR 122021007351 A BR122021007351 A BR 122021007351A BR 122021007351 A2 BR122021007351 A2 BR 122021007351A2
- Authority
- BR
- Brazil
- Prior art keywords
- mode
- candidate
- intraprediction
- intraprediction mode
- mpm
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
método de codificação de imagem baseado em predição intra usando lista de mpm e dispositivo para o mesmo. um método de decodificação de imagem, de acordo com o presente documento, compreende as etapas de: derivar um primeiro candidato de modo de intrapredição com base em um primeiro bloco vizinho posicionado no lado esquerdo de um bloco atual; derivar um segundo candidato de modo de intra-predição com base em um segundo bloco vizinho posicionado no lado superior do bloco atual; configurar uma lista de modo mais provável (mpm) para o bloco atual com base no primeiro candidato de modo de intrapredição e no segundo candidato de modo de intrapredição; derivar um modo de intrapredição para o bloco atual com base na lista de mpm; gerar amostras de predição realizando predição no bloco atual com base no modo de intrapredição; e gerar uma gravu-ra restaurada do bloco atual com base nas amostras de predição.
Description
[001] Este documento se refere a uma tecnologia de codificação de imagem e, mais particularmente, a um método e a um aparelho de codificação de vídeo que usa uma intrapredição baseada em uma lista de MPM.
[002] As demandas por imagens e vídeos de alta resolução e alta qualidade, como uma imagem de ultra-alta definição (UHD - “ultra high definition”) e vídeo de 4K ou 8K ou mais, estão aumentando recentemente em vários campos. À medida que os dados de imagem e vídeo se tornam de alta resolução e alta qualidade, a quantidade de informações ou o número de bits que é relativamente transmitido aumenta em comparação aos dados de imagem e vídeo existentes. Consequentemente, se os dados de imagem são transmitidos com o uso de um meio, como a linha de banda larga com fio ou sem fio existente, ou os dados de imagem e vídeo são armazenados com o uso do meio de armazenamento existente, os custos de transmissão e de armazenamento são aumentados.
[003] Além disso, os interesses e demandas por mídia imersiva, como realidade virtual (VR - “virtual reality”), conteúdo de realidade artificial (AR - “artificial reality”) ou um holograma, estão aumentando recentemente. A difusão de uma imagem e de um vídeo com características de imagem diferentes das imagens reais, como imagens de jogos, está a aumentando.
[004] Consequentemente, existe uma necessidade de uma imagem de alta eficiência e tecnologia de compressão de vídeo a fim de comprimir e transmitir ou armazenar e reproduzir informações de alta resolução e imagens e vídeo de alta qualidade com essas várias características.
[005] Este documento fornece um método e aparelho para melhorar a eficiência da codificação de imagens.
[006] Este documento fornece um método e aparelho de intrapredição eficientes.
[007] Este documento fornece um método e aparelho de codificação de vídeo para derivar uma lista de MPM para uma intrapredição eficiente.
[008] Este documento fornece um método de intrapredição e aparelho para configurar candidatos de MPM dentro de uma lista de MPM para uma intrapredição eficiente.
[009] Em um aspecto, é fornecido um método de decodificação de vídeo realizado por um aparelho de decodificação. O método inclui derivar um primeiro modo de intrapredição candidato com base em um primeiro bloco vizinho que está localizado em um lado esquerdo de um bloco atual, derivar um segundo modo de intrapredição candidato com base em um segundo bloco vizinho que está localizado em um lado superior do bloco atual, construir uma lista de MPM (Modo Mais Provável) para o bloco atual com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato, derivar um modo de intrapredição para o bloco atual com base na lista de MPM, gerar amostras preditas realizando predição para o bloco atual com base no modo de intrapredição e gerar uma gravura (picture) reconstruída para o bloco atual com base nas amostras preditas. A etapa de construção da lista de MPM inclui derivar candidatos de MPM, incluindo pelo menos um dentre o primeiro modo de intrapredição candidato ou o segundo modo de intrapredição candidato, e pelo menos um candidato dos candidatos de MPM é derivado pela aplicação de uma operação aritmética modular 64 ao primeiro modo de intrapredição candidato ou o segundo modo de intrapredição candidato.
[010] Em outro aspecto, é fornecido um método de codificação de vídeo realizado por um aparelho de codificação. O método inclui derivar um primeiro modo de intrapredição candidato com base em um primeiro bloco vizinho que está localizado em um lado esquerdo de um bloco atual, derivar um segundo modo de intrapredição candidato com base em um segundo bloco vizinho que está localizado em um lado superior do bloco atual, construir uma lista de MPM (Modo Mais Provável) para o bloco atual com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato, determinar um modo de intrapredição para o bloco atual, gerar amostras de predição realizando uma predição para o bloco atual com base no modo de intrapredição, e codificar informações de imagem incluindo informações de modo de intrapredição para o bloco atual. A etapa de construção da lista de MPM inclui derivar candidatos de MPM, incluindo pelo menos um dentre o primeiro modo de intrapredição candidato ou o segundo modo de intrapredição candidato, e pelo menos um candidato dos candidatos de MPM é derivado pela aplicação de uma operação aritmética modular 64 ao primeiro modo de intrapredição candidato ou o segundo modo de intrapredição candidato.
[011] De acordo com este documento, a eficiência geral de compactação de vídeo e imagem pode ser melhorada.
[012] De acordo com este documento, a complexidade computacional pode ser reduzida e a eficiência geral de codificação pode ser melhorada por meio de uma intrapredição eficiente.
[013] De acordo com este documento, uma lista de MPM pode ser configurada de forma eficiente considerando um aumento no número de modos de intrapredição. Além disso, a precisão de uma lista de MPM para indicar um modo de intrapredição de um bloco atual pode ser melhorada e a eficiência geral de codificação pode ser melhorada.
[014] De acordo com este documento, o desempenho de predição pode ser melhorado e a complexidade computacional pode ser reduzida porque os candidatos de MPM dentro de uma lista de MPM são configurados considerando o desempenho de predição, complexidade, diretividade de predição, etc.
[015] A FIG. 1 ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual modalidades deste documento podem ser aplicadas.
[016] A FIG. 2 é um diagrama que descreve esquematicamente a configuração de um aparelho de codificação de vídeo/imagem ao qual as modalidades deste documento podem ser aplicadas.
[017] A FIG. 3 é um diagrama que descreve esquematicamente a configuração de um aparelho de decodificação de vídeo/imagem ao qual modalidades deste documento podem ser aplicadas.
[018] A FIG. 4 ilustra um exemplo de um método de codificação de imagem realizado por um aparelho de codificação de vídeo.
[019] A FIG. 5 ilustra um exemplo de um método de codificação de vídeo realizado por um aparelho de decodificação.
[020] A FIG. 6 ilustra um exemplo de um método de codificação de imagem com base em uma intrapredição e a FIG. 7 ilustra esquematicamente um intrapreditor dentro do aparelho de codificação.
[021] A FIG. 8 ilustra um exemplo de um método de codificação de vídeo com base em uma intrapredição e a FIG. 9 ilustra esquematicamente um intrapreditor dentro do aparelho de decodificação.
[022] A FIG. 10 ilustra 65 modos de intrapredição direcional.
[023] A FIG. 11 ilustra blocos vizinhos de um bloco atual.
[024] As FIGS. 12 e 13 são fluxogramas que ilustram esquematicamente um método de configuração de uma lista de MPM para um bloco atual.
[025] A FIG. 14 é um fluxograma que ilustra uma modalidade de um método de configuração de uma lista de MPM para um bloco atual.
[026] A FIG. 15 é um fluxograma que ilustra outra modalidade de um método de configuração de uma lista de MPM para um bloco atual.
[027] A FIG. 16 é um fluxograma que ilustra esquematicamente um método de codificação que pode ser realizado pelo aparelho de codificação de acordo com uma modalidade deste documento.
[028] A FIG. 17 é um fluxograma que ilustra esquematicamente um método de decodificação que pode ser realizado pelo aparelho de decodificação de acordo com uma modalidade deste documento.
[029] A FIG. 18 ilustra um exemplo de um sistema de transmissão (streaming) de conteúdo ao qual as modalidades divulgadas neste documento podem ser aplicadas.
[030] Este documento pode ser modificado de várias maneiras e pode ter várias modalidades, e modalidades específicas serão ilustradas nos desenhos e descritas em detalhes. No entanto, isso não tem a intenção de limitar este documento às modalidades específicas. Os termos comumente usados neste relatório descritivo são usados para descrever uma modalidade específica e não são usados para limitar o espírito técnico deste documento. Uma expressão do número singular inclui expressões plurais, a menos que seja manifestamente expresso de outra forma no contexto. Um termo, como "incluir" ou "ter" neste relatório descritivo, deve ser entendido para indicar a existência de uma característica, número, etapa, operação, elemento, parte ou uma combinação dos mesmos descritos no relatório descritivo e não para excluir a existência ou a possibilidade de adição de uma ou mais outras características, números, etapas, operações, elementos, partes ou uma combinação dos mesmos.
[031] Entretanto, os elementos nos desenhos descritos neste documento são ilustrados de forma independente para conveniência de descrição relacionada a diferentes funções características. Isso não significa que cada um dos elementos seja implementado como hardware ou software separado. Por exemplo, pelo menos dois dos elementos podem ser combinados para formar um único elemento, ou um único elemento pode ser dividido em uma pluralidade de elementos. Uma modalidade na qual os elementos são combinados e/ou separados também está incluída no escopo de direitos deste documento, a menos que se desvie da essência deste documento.
[032] Daqui em diante, as modalidades preferidas deste documento são descritas mais especificamente com referência aos desenhos anexos. Daqui em diante, nos desenhos, o mesmo numeral de referência é usado no mesmo elemento e uma descrição redundante do mesmo elemento pode ser omitida.
[033] Este documento se refere à codificação de vídeo/imagem. Por exemplo, os métodos/modalidades divulgados neste documento podem ser aplicados a um método divulgado na codificação de vídeo versátil (VVC), no padrão EVC (codificação de vídeo essencial), no padrão AOMedia Video 1 (AV1), na 2a geração de padrão de codificação de áudio e vídeo (AVS2) ou no padrão de codificação de vídeo/imagem de próxima geração (por exemplo, H.267 ou H.268, etc.).
[034] Este documento apresenta várias modalidades de codificação de vídeo/imagem e as modalidades podem ser realizadas em combinação umas com as outras, a menos que seja mencionado de outra forma.
[035] Neste documento, o vídeo pode se referir a uma série de imagens ao longo do tempo. A gravura geralmente se refere a uma unidade que representa uma imagem em uma zona de tempo específica, e uma fatia/ladrilho (tile) é uma unidade que constitui parte de uma gravura na codificação. O fatia/ladrilho pode incluir uma ou mais unidades de codificação em árvore (CTUs). Uma gravura pode consistir em um ou mais fatias/ladrilhos. Uma gravura pode consistir em um ou mais grupos de ladrilhos. Um grupo de ladrilhos pode incluir um ou mais ladrilhos. Um bloco pode representar uma região retangular de linhas de CTU dentro de um ladrilho em uma gravura. Um ladrilho pode ser particionado em vários blocos, cada um consistindo em uma ou mais linhas de CTU dentro do ladrilho. Um ladrilho que não é particionado em vários blocos também pode ser chamado de um bloco. Uma varredura de bloco é uma ordenação sequencial específica de CTUs particionando uma gravura em que as CTUs são ordenadas consecutivamente em varredura raster de CTU em um bloco, os blocos dentro de um ladrilho são ordenados consecutivamente em uma varredura raster dos blocos de ladrilho, e os ladrilhos em uma gravura são ordenadas consecutivamente em uma varredura raster dos ladrilhos da gravura. Um ladrilho é uma região retangular das CTUs dentro de uma coluna de ladrilho específica e uma linha de ladrilho específica em uma gravura. A coluna de ladrilhos é uma região retangular das CTUs com uma altura igual à altura da gravura e uma largura especificada por elementos de sintaxe no conjunto de parâmetros de gravura. A linha de ladrilhos é uma região retangular de CTUs tendo uma altura especificada por elementos de sintaxe no conjunto de parâmetros de gravura e uma largura igual à largura da gravura. Uma varredura de ladrilho é uma ordenação sequencial específica de CTUs que particionam uma gravura em que as CTUs são ordenadas consecutivamente em varredura raster de CTU em um ladrilho, enquanto os ladrilhos em uma gravura são ordenados consecutivamente em uma varredura raster dos ladrilhos da gravura. Um fatia inclui um número inteiro de blocos de uma gravura que podem estar contidos exclusivamente em uma única unidade NAL. Um fatia pode consistir no número de ladrilhos completos ou apenas uma sequência consecutiva de blocos completos de um ladrilho. Grupos de ladrilhos e fatias podem ser usados de forma intercambiável neste documento. Por exemplo, neste documento, um grupo de ladrilho/cabeçalho de grupo de ladrilho pode ser denominado um fatia/cabeçalho de fatia.
[036] Um pixel ou um pel pode significar uma unidade menor que constitui uma gravura (ou imagem). Além disso, uma 'amostra' pode ser usada como um termo correspondente a um pixel. Uma amostra pode geralmente representar um pixel ou um valor de um pixel e pode representar apenas um valor de pixel/pixel de um componente luma ou apenas um valor de pixel/pixel de um componente croma.
[037] Uma unidade pode representar uma unidade básica de processamento de imagem. A unidade pode incluir pelo menos um de uma região específica da gravura e informações relacionadas à região. Uma unidade pode incluir um bloco de luma e dois blocos de croma (por exemplo, cb, cr). A unidade pode ser usada de forma intercambiável com termos como bloco ou área em alguns casos. Em um caso geral, um bloco M × N pode incluir amostras (ou matrizes de amostra) ou um conjunto (ou matriz) de coeficientes de transformação de M colunas e N linhas.
[038] Neste documento, o termo “/” e “,” deve ser interpretado para indicar “e/ou.” Por exemplo, a expressão “A/B” pode significar “A e/ou B.” Além disso, “A, B” pode significar “A e/ou B”. Além disso, “A/B/C” pode significar “pelo menos um dentre A, B e/ou C”. Além disso, “A/B/C” pode significar “pelo menos um dentre A, B e/ou C”.
[039] Além disso, no documento, o termo “ou” deve ser interpretado para indicar “e/ou”. Por exemplo, a expressão “A ou B” pode compreender 1) apenas A, 2) apenas B e/ou 3) A e B. Em outras palavras, o termo "ou” neste documento deve ser interpretado para indicar "adicionalmente ou alternativamente”.
[040] A FIG. 1 ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual modalidades deste documento podem ser aplicadas.
[041] Com referência às FIG. 1, um sistema de codificação de vídeo/imagem pode incluir um primeiro dispositivo (dispositivo de origem) e um segundo dispositivo (dispositivo de recepção). O dispositivo de origem pode fornecer informações ou dados de vídeo/imagem codificados na forma de um arquivo ou transmissão para o dispositivo de recepção através de um meio de armazenamento digital ou rede.
[042] O dispositivo de origem pode incluir uma fonte de vídeo, um aparelho de codificação e um transmissor. O dispositivo de recepção pode incluir um receptor, um aparelho de decodificação e um renderizador. O aparelho de codificação pode ser denominado aparelho de codificação de vídeo/imagem e o aparelho de decodificação pode ser denominado aparelho de decodificação de vídeo/imagem. O transmissor pode ser incluído no aparelho de codificação. O receptor pode ser incluído no aparelho de decodificação. O renderizador pode incluir uma tela e a tela pode ser configurada como um dispositivo separado ou um componente externo.
[043] A fonte de vídeo pode adquirir vídeo/imagem por meio de um processo de captura, sintetização ou geração do vídeo/imagem. A fonte de vídeo pode incluir um dispositivo de captura de vídeo/imagem e/ou um dispositivo de geração de vídeo/imagem. O dispositivo de captura de vídeo/imagem pode incluir, por exemplo, uma ou mais câmeras, arquivos de vídeo/imagem incluindo vídeo/imagens capturados anteriormente e semelhantes. O dispositivo de gera- ção de vídeo/imagem pode incluir, por exemplo, computadores, tablets e smartphones e pode gerar vídeos/imagens (eletronicamente). Por exemplo, um vídeo/imagem virtual pode ser gerado através de um computador ou semelhante. Neste caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de geração de dados relacionados.
[044] O aparelho de codificação pode codificar vídeo/imagem de entrada. O aparelho de codificação pode executar uma série de procedimentos, como predição, transformação e quantização para compressão e eficiência de codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser produzidos na forma de um fluxo de bits.
[045] O transmissor pode transmitir as informações de imagem/imagem codificadas ou a saída de dados na forma de um fluxo de bits para o receptor do dispositivo de recepção através de um meio de armazenamento digital ou uma rede na forma de um arquivo ou transmissão. O meio de armazenamento digital pode incluir vários meios de armazenamento, como USB, SD, CD, DVD, Blu-ray, HDD, SSD e semelhantes. O transmissor pode incluir um elemento para gerar um arquivo de mídia por meio de um formato de arquivo predeterminado e pode incluir um elemento para transmissão por meio de uma rede de difusão/comuni-cação. O receptor pode receber/extrair o fluxo de bits e transmitir o fluxo de bits recebido para o aparelho de decodificação.
[046] O aparelho de decodificação pode decodificar o vídeo/imagem executando uma série de procedimentos, como desquantização, transformada inversa e predição correspondente à operação do aparelho de codificação.
[047] O renderizador pode renderizar o vídeo/imagem decodificado. O vídeo/imagem renderizado pode ser exibido na tela.
[048] A FIG. 2 é um diagrama esquemático que ilustra uma configuração de um aparelho de codificação de vídeo/imagem ao qual as modalidades do presente documento podem ser aplicadas. Daqui em diante, o aparelho de codificação de vídeo pode incluir um aparelho de codificação de imagem.
[049] Com referência à FIG. 2, o aparelho de codificação 200 inclui um particionador de imagem 210, um preditor 220, um processador residual 230 e um codificador de entropia 240, um adicionador 250, um filtro 260 e uma memória 270. O preditor 220 pode incluir um interpreditor 221 e um intrapreditor 222. O processador residual 230 pode incluir um transformador 232, um quantizador 233, um desquantizador 234 e um transformador inverso 235. O processador residual 230 pode incluir ainda um subtrator 231. O adicionador 250 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O particionador de imagem 210, o preditor 220, o processador residual 230, o codificador de entropia 240, o adicionador 250 e o filtro 260 podem ser configurados por pelo menos um componente de hardware (por exemplo, um chipset codificador ou processador) de acordo com uma modalidade. Além disso, a memória 270 pode incluir um buffer de gravura decodificada (DPB - "decoded picture buffe”) ou pode ser configurada por um meio de armazenamento digital. O componente de hardware pode ainda incluir a memória 270 como um componente interno/externo.
[050] O particionador de imagem 210 pode particionar uma imagem de entrada (ou uma gravura ou um quadro (frame)) de entrada para o aparelho de codificação 200 em um ou mais processadores. Por exemplo, o processador pode ser chamado de unidade de codificação (CU - "coding unit”). Neste caso, a unidade de codificação pode ser particionada recursivamente de acordo com uma estrutura de árvore quádrupla, árvore ternária, árvore binária (QTBTTT -"quad-tree binary-tree ternary-tree”) de uma unidade de codificação em árvore (CTU - "coding tree unit”) ou uma unidade de codificação maior (LCU - "largest coding unit”). Por exemplo, uma unidade de codificação pode ser particionada em uma pluralidade de unidades de codificação de uma profundidade mais profunda com base em uma estrutura de árvore quádrupla, uma estrutura de árvore binária e/ou uma estrutura ternária. Neste caso, por exemplo, a estrutura de árvore quádrupla pode ser aplicada primeiro e a estrutura de árvore binária e/ou estrutura ternária pode ser aplicada mais tarde. Alternativamente, a estrutura de árvore binária pode ser aplicada primeiro. O procedimento de codificação de acordo com este documento pode ser executado com base na unidade de codificação final que não está mais particionada. Neste caso, a maior unidade de codificação pode ser usada como a unidade de codificação final com base na eficiência de codificação de acordo com as características da imagem ou, se necessário, a unidade de codificação pode ser recursivamente particionada em unidades de codificação de maior profundidade e uma unidade de codificação com um tamanho ideal pode ser usada como a unidade de codificação final. Aqui, o procedimento de codificação pode incluir um procedimento de predição, transformação e reconstrução, que será descrito posteriormente. Como outro exemplo, o processador pode incluir ainda uma unidade de predição (PU - “prediction unit’) ou uma unidade de transformação (TU - “transform unit’). Neste caso, a unidade de predição e a unidade de transformação podem ser divididas ou particionadas da unidade de codificação final acima mencionada. A unidade de predição pode ser uma unidade de predição de amostra, e a unidade de transformação pode ser uma unidade para derivar um coeficiente de transformação e/ou uma unidade para derivar um sinal residual do coeficiente de transformação.
[051] A unidade pode ser usada de forma intercambiável com termos como bloco ou área em alguns casos. Em um caso geral, um bloco M χ N pode representar um conjunto de amostras ou coeficientes de transformação compostos por M colunas e N linhas. Uma amostra pode geralmente representar um pixel ou um valor de um pixel, pode representar apenas um valor de pixel/pixel de um componente luma ou representar apenas um valor de pixel/pixel de um componente croma. Uma amostra pode ser usada como um termo correspondente a uma gravura (ou imagem) para um pixel ou um pel.
[052] No aparelho de codificação 200, uma saída de sinal de predição (bloco predito, matriz de amostra de predição) do interpreditor 221 ou do intra-preditor 222 é subtraída de um sinal de imagem de entrada (bloco original, matriz de amostra original) para gerar um bloco residual de sinal residual, matriz de amostra residual) e o sinal residual gerado é transmitido para o transformador 232. Neste caso, como mostrado, uma unidade para subtrair um sinal de predição (bloco predito, matriz de amostra de predição) do sinal de imagem de entrada (bloco original, matriz de amostra original) no codificador 200 pode ser chamada de um subtrator 231. O preditor pode realizar predição em um bloco a ser processado (doravante, referido como um bloco atual) e gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou a interpredição é aplicada em um bloco atual ou base de CU. Conforme descrito posteriormente na descrição de cada modo de predição, o preditor pode gerar várias informações relacionadas à predição, como informações do modo de predição, e transmitir as informações geradas para o codificador de entropia 240. As informações sobre a predição podem ser codificadas no codificador de entropia 240 e emitidas na forma de um fluxo de bits.
[053] O intrapreditor 222 pode predizer o bloco atual referindo-se às amostras na gravura atual. As referidas amostras podem estar localizadas na vizinhança do bloco atual ou podem estar localizadas separadas de acordo com o modo de predição. Na intrapredição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O modo não direcional pode incluir, por exemplo, um modo DC e um modo planar. O modo direcional pode incluir, por exemplo, 33 modos de predição direcional ou 65 modos de predição direcional de acordo com o grau de detalhe da direção de predição. No entanto, este é apenas um exemplo, mais ou menos modos de predição direcional podem ser usados dependendo de uma configuração. O in-trapreditor 222 pode determinar o modo de predição aplicado ao bloco atual com o uso de um modo de predição aplicado a um bloco vizinho.
[054] O interpreditor 221 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento em uma gravura de referência. Aqui, a fim de reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento podem ser preditas em unidades de blocos, sub-blocos ou amostras com base na correlação de informações de movimento entre o bloco vizinho e o bloco atual. As informações de movimento podem incluir um vetor de movimento e um índice de gravura de referência. As informações de movimento podem incluir ainda informações de direção de interpredição (predição de L0, predição de L1, predição de Bi, etc.). No caso de interpredição, o bloco vizinho pode incluir um bloco vizinho espacial presente na gravura atual e um bloco vizinho temporal presente na gravura de referência. A gravura de referência incluindo o bloco de referência e a gravura de referência incluindo o bloco vizinho temporal podem ser iguais ou diferentes. O bloco vizinho temporal pode ser chamado de bloco de referência colocalizado, uma CU colocalizada (colCU) e semelhantes, e a gravura de referência incluindo o bloco vizinho temporal pode ser chamado de gravura colocalizada (colPic). Por exemplo, o interpreditor 221 pode configurar uma lista de candidatos de informações de movimento com base em blocos vizinhos e gerar informações indicando qual candidato é usado para derivar um vetor de movimento e/ou um índice de gravura de referência do bloco atual. A interpredição pode ser realizada com base em vários modos de predição. Por exemplo, no caso de um modo skip e um modo merge, o interpreditor 221 pode usar informações de movimento do bloco vizinho como informações de movimento do bloco atual. No modo skip, ao contrário do modo merge, o sinal residual pode não ser transmitido. No caso do modo de predição de vetor de movimento (MVP - “motion vector prediction”), o vetor de movimento do bloco vizinho pode ser usado como um preditor de vetor de movimento e o vetor de movimento do bloco atual pode ser indicado pela sinalização de uma diferença de vetor de movimento.
[055] O preditor 220 pode gerar um sinal de predição com base em vários métodos de predição descritos abaixo. Por exemplo, o preditor pode não só aplicar intrapredição ou interpredição para predizer um bloco, mas também aplicar simultaneamente intrapredição e interpredição. Isso pode ser chamado de interpredição e intrapredição combinadas (CIIP - “combined inter and intra prediction”). Além disso, o preditor pode ser baseado em um modo de predição de cópia intrabloco (IBC - “intra block copy”) ou um modo paleta para predição de um bloco. O modo de predição IBC ou modo paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou semelhante, por exemplo, codificação de conteúdo de tela (SCC - “screen content coding”). O IBC basicamente realiza a predição na gravura atual, mas pode ser realizada de forma semelhante à interpredição em que um bloco de referência é derivado na gravura atual. Ou seja, o IBC pode usar pelo menos uma das técnicas de interpredição descritas neste documento. O modo paleta pode ser considerado um exemplo de intracodificação ou intrapredição. Quando o modo paleta é aplicado, um valor de amostra dentro de uma gravura pode ser sinalizada com base nas informações da tabela de paleta e do índice de paleta.
[056] O sinal de predição gerado pelo preditor (incluindo o interpreditor 221 e/ou o intrapreditor 222) pode ser usado para gerar um sinal reconstruído ou para gerar um sinal residual. O transformador 232 pode gerar coeficientes de transformação aplicando uma técnica de transformação ao sinal residual. Por exemplo, a técnica de transformação pode incluir pelo menos uma de uma transformação discreta de cosseno (DCT - “discrete cosine transform”), uma transformada discreta de seno (DST - “discrete sine transform”), uma transformada de karhunen-loève (KLT - “karhunen-loève transform”), uma transformada baseada em gráfico (GBT - “graph-based transform”) ou uma transformada condicionalmente não linear (CNT - “conditionally non-linear transform”). Aqui, o GBT significa a transformação obtida de um gráfico quando as informações de relacionamento entre pixels são representadas pelo gráfico. A CNT se refere à transformação gerada com base em um sinal de predição gerado usando todos os pixels reconstruídos anteriormente. Além disso, o processo de transformação pode ser aplicado a blocos de pixels quadrados com o mesmo tamanho ou pode ser aplicado a blocos com tamanho variável em vez de quadrados.
[057] O quantizador 233 pode quantizar os coeficientes de transformação e transmiti-los para o codificador de entropia 240 e o codificador de entropia 240 pode codificar o sinal quantizado (informações sobre os coeficientes de transformação quantizados) e emitir um fluxo de bits. As informações sobre os coeficientes de transformação quantizados podem ser referidas como informações residuais. O quantizador 233 pode reorganizar coeficientes de transformação quantizada do tipo de bloco em uma forma de vetor unidimensional com base em uma ordem de varredura de coeficiente e gerar informações sobre os coeficientes de transformação quantizados com base nos coeficientes de transformação quantizada na forma de vetor unidimensional. Informações sobre coeficientes de transformação podem ser geradas. O codificador de entropia 240 pode executar vários métodos de codificação, como, por exemplo, Golomb exponencial, codificação de comprimento variável adaptativa ao contexto (CAVLC - “context-adaptive variable length coding“), codificação aritmética binária adaptativa ao contexto (CABAC - “context-adaptive binary arithmetic coding”) e semelhantes. O codificador de entropia 240 pode codificar informações necessárias para a reconstrução de vídeo/imagem diferente de coeficientes de transformação quantizados (por exemplo, valores de elementos de sintaxe, etc.) juntos ou separadamente. As informações codificadas (por exemplo, informações de vídeo/imagem codificadas) podem ser transmitidas ou armazenadas em unidades de NALs (“Network Abstraction Layer’ - camada de abstração de rede) na forma de um fluxo de bits. As informações de vídeo/imagem podem incluir ainda informações sobre vários conjuntos de parâmetros, como um conjunto de parâmetros de adaptação (APS - “adaptation parameter set’), um conjunto de parâmetros de gravura (PPS - “picture parameter set’), um conjunto de parâmetros de sequência (SPS - “sequence parameter set’) ou um conjunto de parâmetros de vídeo (VPS - “video parameter set’). Além disso, as informações de vídeo/imagem podem incluir adicionalmente informações de restrição geral. Neste documento, os elementos de sintaxe e/ou informações transmitidos/sinalizados do aparelho de codificação para o aparelho de decodificação podem ser incluídos nas informações de vídeo/gravura. As informações de vídeo/imagem podem ser codificadas através do procedimento de codificação descrito acima e incluídas no fluxo de bits. O fluxo de bits pode ser transmitido por uma rede ou pode ser armazenado em um meio de armazenamento digital. A rede pode incluir uma rede de transmissão e/ou uma rede de comunicação e o meio de armazenamento digital pode incluir vários meios de armazenamento, como USB, SD, CD, DVD, Blu-ray, HDD, SSD e semelhantes. Um transmissor (não mostrado) transmitindo uma saída de sinal do codificador de entropia 240 e/ou uma unidade de armazenamento (não mostrada) armazenando o sinal pode ser incluído como elemento interno/externo do aparelho de codificação 200 e, alternativamente, o transmissor pode ser incluído no codificador de entropia 240.
[058] Os coeficientes de transformação quantizados que saem do quantizador 233 podem ser usados para gerar um sinal de predição. Por exemplo, o sinal residual (bloco residual ou amostras residuais) pode ser reconstruído aplicando desquantização e transformada inversa aos coeficientes de transformação quantizados através do desquantizador 234 e do transformador inverso 235. O adicionador 250 adiciona o sinal residual reconstruído à saída do sinal de predição do interpreditor 221 ou do intrapreditor 222 para gerar um sinal reconstruído (gravura reconstruída, bloco reconstruído, matriz de amostra reconstruída). Se não houver resíduo para o bloco a ser processado, como no caso em que o modo skip é aplicado, o bloco predito pode ser usado como o bloco reconstruído. O adicionador 250 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para intrapredição de um próximo bloco a ser processado na imagem atual e pode ser usado para interpredição de uma próxima imagem por meio de filtragem, conforme descrito abaixo.
[059] Entretanto, o mapeamento de luma com escala de croma (LMCS -“luma mapping with chroma scaling”) pode ser aplicado durante a codificação e/ou reconstrução da gravura.
[060] O filtro 260 pode melhorar a qualidade da imagem subjetiva/obje-tiva aplicando filtragem ao sinal reconstruído. Por exemplo, o filtro 260 pode gerar uma gravura reconstruída modificada aplicando vários métodos de filtragem a gravura reconstruída e armazenar a gravura reconstruída modificada na memória 270, especificamente, um DPB da memória 270. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desbloqueio, um deslocamento adaptativo de amostra, um filtro de loop adaptativo, um filtro bilateral e semelhantes. O filtro 260 pode gerar várias informações relacionadas à filtragem e transmitir as informações geradas para o codificador de entropia 240, conforme descrito posteriormente na descrição de cada método de filtragem. A informação relacionada com a filtragem pode ser codificada pelo codificador de entropia 240 e emitida na forma de um fluxo de bits.
[061] A gravura reconstruída modificada transmitida para a memória 270 pode ser usado como a gravura de referência no interpreditor 221. Quando a interpredição é aplicada através do aparelho de codificação, a incompatibilidade de predição entre o aparelho de codificação 200 e o aparelho de decodificação pode ser evitada e a eficiência de codificação pode ser melhorada.
[062] O DPB da memória 270 DPB pode armazenar a gravura reconstruída modificada para uso como um gravura de referência no interpreditor 221. A memória 270 pode armazenar as informações de movimento do bloco a partir do qual as informações de movimento na gravura atual são derivadas (ou codificadas) e/ou as informações de movimento dos blocos na gravura que já foram reconstruídos. As informações de movimento armazenadas podem ser transmitidas para o interpreditor 221 e usada como a informações de movimento do bloco vizinho espacial ou as informações de movimento do bloco vizinho temporal. A memória 270 pode armazenar amostras reconstruídas de blocos reconstruídos na gravura atual e pode transferir as amostras reconstruídas para o in-trapreditor 222.
[063] A FIG. 3 é um diagrama esquemático que ilustra uma configuração de um aparelho de decodificação de vídeo/imagem ao qual as modalidades do presente documento podem ser aplicadas.
[064] Com referência às FIG. 3, o aparelho de decodificação 300 pode incluir um decodificador de entropia 310, um processador residual 320, um preditor 330, um adicionador 340, um filtro 350 e uma memória 360. O preditor 330 pode incluir um interpreditor 331 e um intrapreditor 332. O processador residual 320 pode incluir um desquantizador 321 e um transformador inverso 321. O decodificador de entropia 310, o processador residual 320, o preditor 330, o adicionador 340 e o filtro 350 podem ser configurados por um componente de hardware (por exemplo, um chipset decodificador ou um processador) de acordo com uma modalidade. Além disso, a memória 360 pode incluir um buffer de gravura decodificada (DPB - “decoded picture buffer’) ou pode ser configurada por um meio de armazenamento digital. O componente de hardware pode ainda incluir a memória 360 como um componente interno/externo.
[065] Quando um fluxo de bits incluindo informações de vídeo/imagem é inserido, o aparelho de decodificação 300 pode reconstruir uma imagem correspondente a um processo no qual as informações de vídeo/imagem são processadas no aparelho de codificação da FIG. 2. Por exemplo, o aparelho de decodificação 300 pode derivar unidades/blocos com base nas informações relacionadas à partição de bloco obtidas a partir do fluxo de bits. O aparelho de decodificação 300 pode realizar a decodificação com o uso de um processador aplicado no aparelho de codificação. Assim, o processador de decodificação pode ser uma unidade de codificação, por exemplo, e a unidade de codificação pode ser particionada de acordo com uma estrutura de árvore quádrupla, estrutura de árvore binária e/ou estrutura de árvore ternária da unidade de codificação em árvore ou a maior unidade de codificação. Uma ou mais unidades de transformada podem ser derivadas da unidade de codificação. O sinal de imagem reconstruído decodificado e produzido através do aparelho de decodificação 300 pode ser reproduzido através de um aparelho de reprodução.
[066] O aparelho de decodificação 300 pode receber uma saída de sinal do aparelho de codificação da FIG. 2 na forma de um fluxo de bits e o sinal recebido pode ser decodificado por meio do decodificador de entropia 310. Por exemplo, o decodificador de entropia 310 pode analisar o fluxo de bits para derivar informações (por exemplo, informações de vídeo/imagem) necessárias para a reconstrução da imagem (ou reconstrução da gravura). As informações de vídeo/imagem podem incluir ainda informações sobre vários conjuntos de parâmetros, como um conjunto de parâmetros de adaptação (APS - “adaptation parameter set’), um conjunto de parâmetros de gravura (PPS - “picture parameter set’), um conjunto de parâmetros de sequência (SPS - “sequence parameter set”) ou um conjunto de parâmetros de vídeo (VPS - “video parameter set’). Além disso, as informações de vídeo/imagem podem incluir adicionalmente informações de restrição geral. O aparelho de decodificação pode ainda decodificar a gravura com base nas informações no conjunto de parâmetros e/ou nas informações de restrição geral. Informações sinalizadas/recebidas e/ou elementos de sintaxe descritos posteriormente neste documento podem ser decodificados e podem decodificar o procedimento de decodificação e obtidos a partir do fluxo de bits. Por exemplo, o decodificador de entropia 310 decodifica as informações no fluxo de bits com base em um método de codificação, como codificação exponencial de Golomb, CAVLC ou CABAC, e elementos de sintaxe de saída necessários para a reconstrução de imagem e valores quantizados de coeficientes de transformação para residual. Mais especificamente, o método de decodificação de entropia CABAC pode receber um bin correspondente a cada elemento de sintaxe no fluxo de bits, determinar um modelo de contexto com o uso de informações de elemento de sintaxe alvo de decodificação, informações de decodificação de um bloco alvo de decodificação ou informações de um símbolo/bin decodificado em um estágio anterior, e realizar uma decodificação aritmética no bin, prevendo uma probabilidade de ocorrência de um bin de acordo com o modelo de contexto determinado, e gerar um símbolo correspondente ao valor de cada elemento de sintaxe. Neste caso, o método de decodificação de entropia CABAC pode atualizar o modelo de contexto usando as informações do sím-bolo/bin decodificado para um modelo de contexto de um próximo símbolo/bin após determinar o modelo de contexto. As informações relacionadas à predição entre as informações decodificadas pelo decodificador de entropia 310 podem ser fornecidas ao preditor (o interpreditor 332 e o intrapreditor 331) e o valor residual no qual a decodificação de entropia foi realizada no decodificador de entropia 310, isto é, os coeficientes de transformação quantizados e as informações de parâmetro relacionadas podem ser inseridos no processador residual 320. O processador residual 320 pode derivar o sinal residual (o bloco residual, as amostras residuais, a matriz de amostra residual). Além disso, as informações sobre a filtragem entre as informações decodificadas pelo decodificador de entropia 310 podem ser fornecidas ao filtro 350. Entretanto, um receptor (não mostrado) para receber uma saída de sinal do aparelho de codificação pode ser ainda configurado como um elemento interno/externo do aparelho de decodificação 300, ou o receptor pode ser um componente do decodificador de entropia 310. Entretanto, o aparelho de decodificação de acordo com este documento pode ser referido como um aparelho de decodificação de vídeo/imagem/gravura e o aparelho de decodificação pode ser classificado em um decodificador de informações (decodificador de informações de vídeo/imagem/gravura) e um decodificador de amostra (descodificador de amostra de vídeo/imagem/gravura). O decodificador de informações pode incluir o decodificador de entropia 310, e o decodificador de amostra pode incluir pelo menos um dentre o desquantizador 321, o transformador inverso 322, o adicionador 340, o filtro 350, a memória 360, o interpreditor 332 e o intrapreditor 331
[067] O desquantizador 321 pode desquantizar os coeficientes de transformação quantizados e emitir os coeficientes de transformação. O desquantizador 321 pode reorganizar os coeficientes de transformação quantizados na forma de um bloco bidimensional. Neste caso, o rearranjo pode ser realizado com base na ordem de varredura de coeficiente realizada no aparelho de codificação. O desquantizador 321 pode realizar a desquantização nos coeficientes de transformação quantizados com o uso de um parâmetro de quantização (por exemplo, informações de tamanho da etapa de quantização) e obter coeficientes de transformação.
[068] A transformada inversa 322 transforma inversamente os coeficientes de transformação para obter um sinal residual (bloco residual, matriz de amostra residual).
[069] O preditor pode realizar predição no bloco atual e gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou interpredição é aplicada ao bloco atual com base nas informações sobre a saída de predição do decodificador de entropia 310 e pode determinar um modo específico de inter/intrapredição.
[070] O preditor 320 pode gerar um sinal de predição com base em vários métodos de predição descritos abaixo. Por exemplo, o preditor pode não só aplicar intrapredição ou interpredição para predizer um bloco, mas também aplicar simultaneamente intrapredição e interpredição. Isso pode ser chamado de interpredição e intrapredição combinadas (CIIP - “combined inter and intra prediction”). Além disso, o preditor pode ser baseado em um modo de predição de cópia intrabloco (IBC - “intra block copy”) ou um modo paleta para predição de um bloco. O modo de predição IBC ou modo paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou semelhante, por exemplo, codificação de conteúdo de tela (SCC - “screen content coding’). O IBC basicamente realiza a predição na gravura atual, mas pode ser realizada de forma semelhante à interpredição em que um bloco de referência é derivado na gravura atual. Ou seja, o IBC pode usar pelo menos uma das técnicas de interpredição descritas neste documento. O modo paleta pode ser considerado um exemplo de intracodificação ou intrapredição. Quando o modo paleta é aplicado, um valor de amostra dentro de uma gravura pode ser sinalizado com base nas informações da tabela de paleta e do índice de paleta.
[071] O intrapreditor 331 pode predizer o bloco atual referindo-se às amostras na gravura atual. As referidas amostras podem estar localizadas na vizinhança do bloco atual ou podem estar localizadas separadas de acordo com o modo de predição. Na intrapredição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O intrapreditor 331 pode determinar o modo de predição aplicado ao bloco atual com o uso de um modo de predição aplicado a um bloco vizinho.
[072] O intrapreditor 331 pode predizer o bloco atual referindo-se às amostras na gravura atual. As amostras referenciadas podem estar localizadas na vizinhança do bloco atual ou podem estar localizadas separadas de acordo com o modo de predição. Na intrapredição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O intrapreditor 331 pode determinar o modo de predição aplicado ao bloco atual com o uso do modo de predição aplicado ao bloco vizinho.
[073] O interpreditor 332 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento em uma gravura de referência. Neste caso, a fim de reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento podem ser preditas em unidades de blocos, sub-blocos ou amostras com base na correlação de informações de movimento entre o bloco vizinho e o bloco atual. As informações de movimento podem incluir um vetor de movimento e um índice de gravura de referência. As informações de movimento podem incluir ainda informações de direção de interpredição (predição de L0, predição de L1, predição de Bi, etc.). No caso de interpredição, o bloco vizinho pode incluir um bloco vizinho espacial presente na gravura atual e um bloco vizinho temporal presente na gravura de referência. Por exemplo, o interpreditor 332 pode configurar uma lista de candidatos de informações de movimento com base em blocos vizinhos e derivar um vetor de movimento do bloco atual e/ou um índice de gravura de referência com base nas informações de seleção de candidato recebidas. A interpredição pode ser realizada com base em vários modos de predição e as informações sobre a predição podem incluir informações que indicam um modo de interpredição para o bloco atual.
[074] O adicionador 340 pode gerar um sinal reconstruído (gravura reconstruída, bloco reconstruído, matriz de amostra reconstruída) adicionando o sinal residual obtido à saída de sinal de predição (bloco predito, matriz de amostra predita) do preditor (incluindo o interpreditor 332 e/ou o intrapreditor 331). Se não houver resíduo para o bloco a ser processado, como quando o modo skip é aplicado, o bloco predito pode ser usado como o bloco reconstruído.
[075] O adicionador 340 pode ser chamado de reconstrutor ou um gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para interpredição na de um próximo bloco a ser processado na gravura atual, pode ser enviado por meio de filtragem conforme descrito abaixo ou pode ser usado para interpredição de um próxima gravura.
[076] Entretanto, o mapeamento de luma com escala de croma (LMCS) pode ser aplicado no processo de decodificação de gravura.
[077] O filtro 350 pode melhorar a qualidade da imagem subjetiva/obje-tiva aplicando filtragem ao sinal reconstruído. Por exemplo, o filtro 350 pode gerar uma gravura reconstruída modificada aplicando vários métodos de filtragem a gravura reconstruída e armazenar a gravura reconstruída modificada na memória 360, especificamente, um DPB da memória 360. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desbloqueio, um deslocamento adaptativo de amostra, um filtro de loop adaptativo, um filtro bilateral e semelhantes.
[078] A gravura reconstruída (modificada) armazenada no DPB da memória 360 pode ser usado como uma gravura de referência no interpreditor 332. A memória 360 pode armazenar as informações de movimento do bloco a partir do qual as informações de movimento na gravura atual são derivadas (ou decodificadas) e/ou as informações de movimento dos blocos na gravura que já foram reconstruídos. As informações de movimento armazenadas podem ser transmitidas para o interpreditor 260 de modo a serem utilizadas como as informações de movimento do bloco vizinho espacial ou as informações de movimento do bloco vizinho temporal. A memória 360 pode armazenar amostras reconstruídas de blocos reconstruídos na gravura atual e transferir as amostras reconstruídas para o intrapreditor 331.
[079] Na presente divulgação, as modalidades descritas no filtro 260, no interpreditor 221 e no intrapreditor 222 do aparelho de codificação 200 podem ser as mesmas ou aplicadas respectivamente para corresponder ao filtro 350, o interpreditor 332 e o intrapreditor 331 do aparelho de decodificação 300. O mesmo também pode se aplicar à unidade 332 e ao intrapreditor 331.
[080] Conforme descrito acima, ao realizar a codificação de vídeo, uma predição é realizada para melhorar a eficiência de compressão. Um bloco predito incluindo amostras de predição para um bloco atual, isto é, um bloco de codificação alvo, pode ser gerado por meio da predição. Neste caso, o bloco predito inclui as amostras de predição em um domínio espacial (ou domínio de pixel). O bloco predito é derivado de forma idêntica no aparelho de codificação e no aparelho de decodificação. O aparelho de codificação pode aumentar a eficiência de codificação de imagem sinalizando, para o aparelho de decodificação, informações sobre um resíduo (informações residuais) entre o bloco original e não um valor de amostra original em si do bloco original e do bloco predito. O aparelho de decodificação pode derivar um bloco residual incluindo amostras residuais com base nas informações residuais, pode gerar um bloco reconstruído incluindo amostras reconstruídas adicionando o bloco residual e o bloco predito e pode gerar uma gravura reconstruída incluindo os blocos reconstruídos.
[081] As informações residuais podem ser geradas por meio de um procedimento de transformada e quantização. Por exemplo, o aparelho de codificação pode derivar o bloco residual entre o bloco original e o bloco predito, pode derivar coeficientes de transformação realizando um procedimento de transformada nas amostras residuais (matriz de amostra residual) incluídas no bloco residual, pode derivar coeficientes de transformação quantizados por realizar um procedimento de quantização nos coeficientes de transformação e pode sinalizar informações residuais relacionadas ao aparelho de decodificação (por meio de um fluxo de bits). Neste caso, as informações residuais podem incluir informações, tais como informações de valor, informações de localização, esquema de transformada, núcleo de transformada e parâmetro de quantização dos coeficientes de transformação quantizados. O aparelho de decodificação pode realizar um procedimento de desquantização/transformada inversa com base na informação residual e pode derivar amostras residuais (ou bloco residual). O aparelho de decodificação pode gerar uma gravura reconstruída com base no bloco predito e no bloco residual. Além disso, o aparelho de codificação pode derivar um bloco residual por desquantização/transformada inversa dos coeficientes de transformação quantizados para referência à interpredição de uma gravura subsequente e pode gerar uma gravura reconstruída.
[082] A FIG. 4 ilustra um exemplo de um método de codificação de imagem realizado por um aparelho de codificação de vídeo.
[083] Com referência às FIG. 4, o método de codificação de imagem pode incluir particionamento de bloco, inter/intrapredição, transformada, quantização e processos de codificação de entropia. Por exemplo, uma gravura atual pode ser particionada em uma pluralidade de blocos. Um bloco de predição de um bloco atual pode ser gerado por meio de uma inter/intrapredição. Um bloco residual do bloco atual pode ser gerado por meio de uma subtração entre um bloco de entrada do bloco atual e o bloco de predição. Depois disso, um bloco de coeficiente, isto é, coeficientes de transformação do bloco atual, pode ser gerado por meio de uma transformação para o bloco residual. Os coeficientes de transformação podem ser quantizados e codificados por entropia e armazenados em um fluxo de bits.
[084] A FIG. 5 ilustra um exemplo de um método de codificação de vídeo realizado por um aparelho de decodificação.
[085] Com referência às FIG. 5, o método de codificação de imagem pode incluir decodificação de entropia, quantização inversa, transformada inversa e processos de inter/intrapredição. Por exemplo, o aparelho de decodificação pode realizar processos opostos aos do método de codificação acima mencionado. Especificamente, os coeficientes de transformação quantizados podem ser obtidos por meio de decodificação de entropia para um fluxo de bits. Um bloco de coeficiente de um bloco atual, isto é, coeficientes de transformação, pode ser obtido por meio de um processo de quantização inversa para os coeficientes de transformação quantizados. Um bloco residual do bloco atual pode ser derivado por meio de uma transformada inversa para os coeficientes de transformação. Um bloco reconstruído do bloco atual pode ser derivado por meio da adição de um bloco de predição do bloco atual, derivado por meio de uma inter/intrapredição, e o bloco residual.
[086] Entretanto, se uma intrapredição for realizada, uma correlação entre as amostras pode ser usada, e uma diferença entre o bloco original e um bloco de predição, ou seja, um residual, pode ser obtida. A transformada e a quantização acima mencionadas podem ser aplicadas ao resíduo. Consequentemente, a redundância espacial pode ser reduzida. A seguir, um método de codificação e um método de decodificação com o uso de uma intrapredição são especificamente descritos.
[087] Uma intrapredição se refere a uma predição para gerar amostras de predição para um bloco atual com base em amostras de referência fora do bloco atual dentro de uma gravura (doravante uma gravura atual) incluindo o bloco atual. Neste caso, as amostras de referência fora do bloco atual podem se referir a amostras localizadas na periferia do bloco atual. Se uma intrapredição for aplicada ao bloco atual, as amostras de referência vizinhas a serem usadas para a intrapredição do bloco atual podem ser derivadas.
[088] Por exemplo, quando o tamanho (largura x altura) de um bloco atual é nW x nH, as amostras de referência vizinhas do bloco atual podem incluir uma amostra vizinha ao limite à esquerda e um total de 2xnH amostras vizinhas à parte inferior à esquerda do bloco atual, uma amostra vizinha ao limite de topo e um total de 2xnW amostras vizinhas de topo à direita do bloco atual e uma amostra vizinha de topo à esquerda do bloco atual. Alternativamente, as amos- tras de referência vizinhas de um bloco atual também podem incluir uma pluralidade de colunas de amostras vizinhas de topo e uma pluralidade de linhas de amostras vizinhas à esquerda. Além disso, as amostras de referência vizinhas de um bloco atual também podem incluir um total de nH amostras vizinhas ao limite à direita do bloco atual com um tamanho nWxnH, um total de nW amostras vizinhas ao limite inferior do bloco atual e uma amostra vizinha ao limite inferior à direita do bloco atual.
[089] Nesse caso, algumas das amostras de referência vizinhas do bloco atual não foram decodificadas ou podem não estar disponíveis. Neste caso, o aparelho de decodificação pode configurar amostras de referência vizinhas a serem usadas para uma predição, substituindo amostras indisponíveis por amostras disponíveis. Alternativamente, as amostras de referência vizinhas a serem usadas para uma predição podem ser configuradas por meio da interpolação de amostras disponíveis.
[090] Se as amostras de referência vizinhas forem derivadas, (i) uma amostra de predição pode ser derivada com base em uma média ou interpolação das amostras de referência vizinhas de um bloco atual, e (ii) uma amostra de predição pode ser derivada com base em uma amostra de referência presente em um direção específica (predição) para a amostra de predição entre as amostras de referência vizinhas de um bloco atual. (i) pode ser aplicada quando um modo de intrapredição é um modo não direcional ou um modo não angular. (ii) pode ser aplicada quando um modo de intrapredição é um modo direcional ou um modo angular.
[091] Além disso, uma amostra de predição pode ser gerada por meio de interpolação entre uma primeira amostra vizinha, localizada na direção de predição de um modo de intrapredição de um bloco atual, e uma segunda amos- tra vizinha correspondente à primeira amostra vizinha com base em uma amostra de predição do bloco atual entre as amostras de referência vizinhas. A segunda amostra vizinha pode ser uma amostra localizada em uma direção oposta à direção de predição do modo de intrapredição do bloco atual. O caso acima pode ser chamado de intrapredição de interpolação linear (LIP - “linear interpolation intra prediction”). Além disso, uma amostra de predição temporária de um bloco atual pode ser derivada com base em amostras de referência vizinhas filtradas. Uma amostra de predição do bloco atual pode ser derivada pela soma ponderada de pelo menos uma amostra de referência, derivada com base em um modo de intrapredição e a amostra de predição temporária entre as amostras de referência vizinhas existentes, isto é, amostras de referência vizinhas não filtradas. O caso acima pode ser chamado de uma intrapredição dependente da posição (PDCP - “position dependent intra prediction”). Entretanto, a pós-filtra-gem para a amostra de predição derivada pode ser realizada, se necessário.
[092] Especificamente, um procedimento de intrapredição pode incluir uma etapa de determinação de modo de intrapredição, uma etapa de derivação de amostra de referência vizinha e uma etapa de derivação de amostra de predição baseada em modo de intrapredição. Além disso, uma etapa de pós-filtra-gem para uma amostra de predição derivada pode ser realizada, se necessário.
[093] A FIG. 6 ilustra um exemplo de um método de codificação de imagem com base em uma intrapredição e a FIG. 7 ilustra esquematicamente um intrapreditor dentro do aparelho de codificação. O intrapreditor dentro do aparelho de codificação na FIG. 7 pode ser aplicado ao intrapreditor 222 do aparelho de codificação 200 na FIG. 2 de forma idêntica ou de forma correspondente.
[094] Com referência às FIGS. 6 e 7, S600 pode ser realizado pelo intrapreditor 222 do aparelho de codificação. S610 pode ser realizado pelo processador residual 230 do aparelho de codificação. Especificamente, S610 pode ser realizado pelo subtrator 231 do aparelho de codificação. No S620, as informações de predição podem ser derivadas pelo intrapreditor 222 e podem ser codificadas pelo codificador de entropia 240. No S620, as informações residuais podem ser derivadas pelo processador residual 230 e podem ser codificadas pelo codificador de entropia 240. As informações residuais são informações relacionadas a amostras residuais. As informações residuais podem incluir informações relacionadas aos coeficientes de transformação quantizados para as amostras residuais. Conforme descrito acima, as amostras residuais podem ser derivadas como coeficientes de transformação através do transformador 232 do aparelho de codificação. Os coeficientes de transformação podem ser derivados como coeficientes de transformação quantizados através do quantizador 233. As informações relacionadas aos coeficientes de transformação quantizados podem ser codificadas pelo codificador de entropia 240 por meio de um procedimento de codificação residual.
[095] O aparelho de codificação pode realizar uma intrapredição para um bloco atual (S600). O aparelho de codificação pode derivar um modo de intrapredição do bloco atual, pode derivar amostras de referência vizinhas do bloco atual e pode gerar amostras de predição dentro do bloco atual com base no modo de intrapredição e as amostras de referência vizinhas. Neste caso, a determinação do modo de intrapredição, derivação de amostra de referência vizinha e procedimentos de geração de amostra de predição podem ser realizados ou qualquer um dos procedimentos pode ser realizado antes de outro procedimento.
[096] Em uma modalidade, o intrapreditor 222 do aparelho de codificação pode incluir um determinador de modo de predição 223, um derivador de amostra de referência 224 e um derivador de amostra de predição 225. O determinador de modo de predição 223 pode determinar um modo de intrapredição para um bloco atual. O derivador de amostra de referência 224 pode derivar amostras de referência vizinhas do bloco atual. O derivador de amostra de predição 225 pode derivar amostras de predição do bloco atual. Entretanto, embora não ilustrado, se um procedimento de filtragem de amostra de predição a ser descrito posteriormente for realizado, o intrapreditor 222 pode incluir ainda uma unidade de filtro de amostra de predição (não ilustrada). O aparelho de codificação pode determinar um modo aplicado a um bloco atual entre uma pluralidade de modos de intrapredição. O aparelho de codificação pode comparar os custos de RD para os modos de intrapredição e pode determinar o melhor modo de intrapredição do bloco atual.
[097] Conforme descrito acima, o aparelho de codificação pode executar um procedimento de filtragem de amostra de predição. A filtragem da amostra de predição pode ser chamada de pós-filtragem. Algumas ou todas as amostras de predição podem ser filtradas pelo procedimento de filtragem de amostra de predição. O procedimento de filtragem da amostra de predição pode ser omitido de acordo com as circunstâncias.
[098] O aparelho de codificação pode gerar amostras residuais para o bloco atual com base em amostras de predição (filtradas) (S610). O aparelho de codificação pode codificar informações de imagem, incluindo informações de modo de predição indicativas do modo de intrapredição e informações residuais relacionadas às amostras residuais (S620). As informações de imagem codificadas podem ser emitidas em um formato de fluxo de bits. O fluxo de bits de saída pode ser transmitido para o aparelho de decodificação através de um meio de armazenamento em uma rede.
[099] Conforme descrito acima, o aparelho de codificação pode gerar uma gravura reconstruída (incluindo amostras reconstruídas e um bloco reconstruído) com base em amostras de predição e amostras residuais. Isso é para derivar, pelo aparelho de codificação, os mesmos resultados de predição que aqueles realizados no aparelho de decodificação. A razão para isso é que a eficiência da codificação pode ser melhorada. Além disso, como descrito acima, um procedimento de filtragem em loop pode ser posteriormente aplicado à imagem reconstruída.
[0100] A FIG. 8 ilustra um exemplo de um método de codificação de vídeo com base em uma intrapredição e a FIG. 9 ilustra esquematicamente um intrapreditor dentro do aparelho de decodificação. Um intrapreditor dentro do aparelho de decodificação na FIG. 9 pode ser aplicado ao intrapreditor 331 do aparelho de decodificação 300 na FIG. 3 de forma idêntica ou de forma correspondente.
[0101] Com referência às FIGS. 8 e 9, o aparelho de decodificação pode executar operações correspondentes às operações realizadas no aparelho de codificação. O aparelho de decodificação pode realizar uma predição em um bloco atual e derivar amostras de predição com base nas informações de predição recebidas.
[0102] S800 a S820 pode ser realizado pelo intrapreditor 331 do aparelho de decodificação. Em S830, as informações residuais podem ser obtidas a partir de um fluxo de bits pelo decodificador de entropia 310 do aparelho de decodificação. O processador residual 320 do aparelho de decodificação pode derivar amostras residuais para um bloco atual com base nas informações residuais. Especificamente, o desquantizador 321 do processador residual pode derivar coeficientes de transformação realizando quantização inversa com base em coeficientes de transformação quantizados derivados com base em informações residuais. O transformador inverso 322 do processador residual 320 pode derivar amostras residuais para o bloco atual executando uma transformada inversa para os coeficientes de transformação. S840 pode ser realizado pelo adicionador 340 ou reconstrutor do aparelho de decodificação.
[0103] O aparelho de decodificação pode derivar um modo de intrapredição para um bloco atual com base na informação de modo de predição recebida (S800). O aparelho de decodificação pode derivar amostras de referência vizinhas do bloco atual (S810). O aparelho de decodificação pode gerar amostras de predição dentro de um bloco atual com base no modo de intrapredição e nas amostras de referência vizinhas (S820). Neste caso, o aparelho de decodificação pode executar um procedimento de filtragem de amostra de predição. A filtragem da amostra de predição pode ser chamada de pós-filtragem. Algumas ou todas as amostras de predição podem ser filtradas pelo procedimento de filtragem de amostra de predição. O procedimento de filtragem da amostra de predição pode ser omitido de acordo com as circunstâncias.
[0104] O aparelho de decodificação pode gerar amostras residuais para o bloco atual com base nas informações residuais recebidas (S830). O aparelho de decodificação pode gerar amostras reconstruídas para o bloco atual com base nas amostras de predição (filtradas) e nas amostras residuais e pode gerar uma gravura reconstruída com base nas amostras reconstruídas (S840).
[0105] Em uma modalidade, o intrapreditor 331 do aparelho de decodificação pode incluir um determinador de modo de predição 333, um derivador de amostra de referência 334 e um derivador de amostra de predição 335. O determinante de modo de predição 333 pode determinar um modo de intrapredição para um bloco atual com base na informação de modo de predição recebida do determinador de modo de predição 223 do aparelho de codificação. O derivador de amostra de referência 334 pode derivar amostras de referência vizinhas do bloco atual. O derivador de amostra de predição 335 pode derivar amostras de predição do bloco atual. Entretanto, embora não ilustrado, se um procedimento de filtragem de amostra de predição for realizado, o intrapreditor 331 pode incluir ainda uma unidade de filtro de amostra de predição (não ilustrada).
[0106] Entretanto, ao realizar uma intrapredição, a informação de modo de predição pode ser determinada dependendo se um modo mais provável (MPM) é aplicado a um bloco atual. Por exemplo, as informações do modo de predição podem incluir informações de sinalizador (por exemplo, prev_in-tra_luma_pred_flag) indicando se um modo mais provável (MPM) é aplicado ou um modo restante é aplicado a um bloco atual. Se o MPM for aplicado ao bloco atual, as informações do modo de predição podem incluir adicionalmente informações de índice (por exemplo, mpm_idx) indicativas de um dos candidatos ao modo de intrapredição (candidatos de MPM). Neste caso, os candidatos de modo de intrapredição (candidatos de MPM) podem ser configurados como uma lista candidatos de MPM ou uma lista de MPM. Além disso, se o MPM não for aplicado ao bloco atual, as informações de modo de predição podem incluir ainda informações de modo restantes (por exemplo, rem_inra_luma_pred_mode) indicativas de um dos modos de intrapredição restantes, exceto candidatos de modo de intrapredição (candidatos de MPM). O aparelho de decodificação pode determinar um modo de intrapredição do bloco atual com base nas informações do modo de predição. Neste caso, as informações do modo de predição podem ser codi-ficadas/decodificadas por meio de um método de codificação a ser descrito posteriormente. Por exemplo, as informações de modo de predição podem ser codi-ficadas/decodificadas por meio de codificação de entropia (por exemplo, CABAC, CAVLC) com base em um código binário truncado (rice).
[0107] Além disso, se uma intrapredição for aplicada, na determinação das informações de modo de predição, um modo de intrapredição aplicado a um bloco atual pode ser determinado com o uso de um modo de intrapredição de um bloco vizinho. Por exemplo, o aparelho de decodificação pode derivar candidatos de modo mais provável (MPM) com base em um modo de intrapredição de um bloco à esquerda e modo de intrapredição de um bloco de topo de um bloco atual e pode selecionar um dos candidatos de MPM com base em um índice de MPM (por exemplo, mpm_idx). Alternativamente, o aparelho de decodificação pode selecionar um dos modos de intrapredição restantes, não incluídos nos candidatos de MPM, com base nas informações de modo de intrapredição restantes (por exemplo, rem_inra_luma_pred_mode). O índice de MPM pode ser sinalizado na forma de um elemento de sintaxe mpm_idx. As informações de modo de intrapredição restantes podem ser sinalizadas na forma de um elemento de sintaxe rem_intra_luma_pred_mode. Por exemplo, as informações de modo de intrapredição restantes podem indicar um dos modos de intrapredição restantes que não estão incluídos nos candidatos de MPM entre todos os modos de intrapredição e que são indexados em ordem de um número de modo de predição.
[0108] Um modo de intrapredição pode incluir modos de intrapredição não direcional (ou não angular) e modos de intrapredição direcional (ou angular). Por exemplo, no padrão HEVC, os modos de intrapredição incluindo 2 modos de predição não direcional e 33 modos de predição direcional são usados. Os modos de predição não direcional podem incluir um modo de intrapredição planar, isto é, n°. 0, e um modo de intrapredição DC, isto é, n°. 1. Os modos de predição direcional podem incluir modos de intrapredição n°. 2 a n° 34. O modo de intrapredição modo planar pode ser denominado um modo planar e o modo de intrapredição DC pode ser denominado um modo DC.
[0109] Alternativamente, a fim de capturar uma dada direção de borda proposta em vídeo natural, os modos de intrapredição direcional podem ser estendidos dos 33 modos para 65 modos existentes como na FIG. 10. Neste caso, os modos de intrapredição podem incluir 2 modos de intrapredição não direcional e 65 modos de intrapredição direcional. Os modos de intrapredição não direcional podem incluir um modo de intrapredição planar, isto é, n° 0, e um modo de intrapredição DC, isto é, n° 1. Os modos de intrapredição direcional podem incluir modos de intrapredição n°s. 2 a 66. Os modos de intrapredição direcional estendidos podem ser aplicados a blocos com todos os tamanhos e podem ser aplicados a um componente de luma e um componente de croma. No entanto, este é um exemplo, e modalidades deste documento podem ser aplicadas a um caso em que o número de modos de intrapredição é diferente. Um modo de intrapredição n° 67 de acordo com as circunstâncias pode ser usado posteriormente. O modo de intrapredição n° 67 pode indicar um modo de modelo linear (LM - “linear model’).
[0110] A FIG. 10 ilustra 65 modos de intrapredição direcional.
[0111] Com referência às FIG. 10, os modos podem ser divididos em modos de intrapredição tendo direcionalidade horizontal e modos de intrapredição tendo direcionalidade vertical com base em um modo de intrapredição n° 34 tendo uma direção de predição diagonal de topo esquerda. Na FIG. 10, H e V significam direcionalidade horizontal e direcionalidade vertical, respectivamente. Cada um dos números -32 ~ 32 indica o deslocamento de 1/32 unidade em uma posição da grade de amostra. Os modos de intrapredição n°s. 2 a 33 têm direcionalidade horizontal, e os modos de intrapredição n°s. 34 a 66 têm direcionalidade vertical. O modo de intrapredição n° 18 e o modo de intrapredição n°. 50 indicam um modo de intrapredição horizontal e um modo de intrapredição vertical, respectivamente. O modo de intrapredição n° 2 pode ser chamado de modo de intrapredição diagonal inferior à esquerda, o modo de intrapredição diagonal n° 34 pode ser chamado de modo de intrapredição diagonal de topo à esquerda e o modo de intrapredição diagonal n° 66 pode ser chamado de modo de intrapredição diagonal de topo à direita.
[0112] Conforme descrito acima, em geral, se o particionamento de bloco para uma gravura for executado, um bloco atual e um bloco vizinho a serem codificados têm características de imagem semelhantes. Consequentemente, há uma boa probabilidade de que o bloco atual e o bloco vizinho tenham o mesmo modo de intrapredição ou semelhante. De acordo com tais características de imagem, um modo de intrapredição de um bloco atual pode ser derivado com o uso de um modo de intrapredição de um bloco vizinho. Isso pode ser referido como o modo mais provável (MPM). Ou seja, o MPM pode significar um modo usado para aumentar a eficiência da codificação, considerando a similaridade entre um bloco atual e um bloco vizinho após a codificação do modo de intrapredição.
[0113] Por exemplo, o aparelho de codificação/decodificação pode configurar uma lista de modo mais provável (MPM) para um bloco atual. A lista de MPM pode ser indicada como uma lista de candidatos de MPM. Nesse caso, uma lista de MPM incluindo determinados candidatos de MPM pode ser configurada considerando a complexidade na geração da lista de MPM. Por exemplo, uma lista de MPM pode incluir 3 candidatos de MPM, 5 candidatos de MPM ou 6 candidatos de MPM. Em uma modalidade, uma lista de MPM pode incluir candidatos de MPM derivados com base em um modo de intrapredição de um bloco vizinho, um modo de intrapredição derivado e/ou um modo de intrapredição padrão. Neste caso, ao derivar candidatos de MPM do bloco vizinho, o aparelho de codificação/aparelho de decodificação pode derivar um modo de intrapredição do bloco vizinho pesquisando blocos vizinhos de um bloco atual de acordo com uma ordem específica e pode usar o modo de intrapredição do bloco vizinho como um candidato de MPM com base na ordem derivada. Por exemplo, os blocos vizinhos podem incluir pelo menos um dentre o bloco vizinho à esquerda, bloco vizinho de topo, bloco vizinho inferior à esquerda, bloco vizinho de topo à direita e bloco vizinho de topo à esquerda do bloco atual. Se um modo de intrapredição do bloco atual não estiver incluído entre os candidatos de MPM na lista de MPM, um modo restante pode ser usado. Neste caso, o modo restante é um modo que usa os modos de intrapredição restantes, exceto os candidatos de MPM, entre todos os modos de intrapredição, e pode codificar e sinalizar informações de modo de intrapredição restantes. As informações de modo de intrapredição restantes podem ser informações indicativas de um modo de intrapredição aplicado a um bloco atual, entre os modos de intrapredição restantes, exceto os candidatos de MPM. Por exemplo, se 67 modos de intrapredição são usados, as informações de modo de intrapredição restantes podem incluir um elemento de sintaxe de 6 bits (por exemplo, elemento de sintaxe rem_in-tra_luma_pred_mode).
[0114] Conforme descrito acima, no padrão HEVC, 35 modos de intrapredição são usados mediante a intrapredição. Neste caso, uma lista de MPM incluindo 3 candidatos de MPM é configurada. Neste caso, os 3 candidatos de MPM podem ser derivados com base nos modos de intrapredição de um bloco vizinho F e um bloco vizinho G. Os blocos vizinhos de um bloco atual incluindo o bloco vizinho F e o bloco vizinho G podem ser iguais aos descritos acima.
[0115] A FIG. 11 ilustra blocos vizinhos de um bloco atual.
[0116] Com referência às FIG. 11, os blocos vizinhos de um bloco atual podem incluir um bloco vizinho A, um bloco vizinho B, um bloco vizinho C, um bloco vizinho D, um bloco vizinho E, um bloco vizinho F e/ou um bloco vizinho G.
[0117] Neste caso, o bloco vizinho A pode indicar um bloco vizinho localizado no lado de topo à esquerda de uma posição de amostra de topo à esquerda de um bloco atual. O bloco vizinho B pode indicar um bloco vizinho localizado no lado superior de uma posição de amostra de topo à direita do bloco atual. O bloco vizinho C pode indicar um bloco vizinho localizado no lado de topo à direita de uma posição de amostra de topo à direita do bloco atual. O bloco vizinho D pode indicar um bloco vizinho localizado no lado esquerdo de uma posição de amostra inferior esquerda do bloco atual. O bloco vizinho E pode indicar um bloco vizinho localizado na parte inferior esquerda de uma posição de amostra inferior esquerda do bloco atual. O bloco vizinho G pode indicar um bloco vizinho localizado no lado superior de uma posição de amostra de topo à esquerda do bloco atual. O bloco vizinho F pode indicar um bloco vizinho localizado no lado esquerdo de uma posição de amostra de topo à esquerda do bloco atual.
[0118] Por exemplo, se o tamanho de um bloco atual é WxH e o componente x e o componente y da posição da amostra de topo à esquerda do bloco atual são 0, o bloco vizinho A pode ser um bloco incluindo uma amostra nas coordenadas (-1, - 1), o bloco vizinho B pode ser um bloco incluindo uma amostra nas coordenadas (W-1, -1), o bloco vizinho C pode ser um bloco incluindo uma amostra nas coordenadas (W, -1), o bloco vizinho D pode ser um bloco incluindo uma amostra nas coordenadas (-1, H-1), o bloco vizinho E pode ser um bloco incluindo uma amostra nas coordenadas (-1, H), o bloco vizinho F pode ser um bloco incluindo uma amostra nas coordenadas (-1, 0), e o bloco vizinho G pode ser um bloco incluindo uma amostra nas coordenadas (0, -1).
[0119] De acordo com o padrão HEVC, 3 candidatos de MPM podem ser derivados com base em um modo de intrapredição do bloco vizinho F e um modo de intrapredição do bloco vizinho G. Por exemplo, o modo de intrapredição do bloco vizinho F e o modo de intrapredição do bloco vizinho G podem ser derivados. Entretanto, no seguinte caso, um modo de intrapredição do bloco vizinho F ou um modo de intrapredição do bloco vizinho G pode ser derivado como um modo de intrapredição DC.
- 1) Se o bloco vizinho F ou o bloco vizinho G não estiver disponível
- 2) Se o bloco vizinho F ou o bloco vizinho G não estiver codificado como um modo de intrapredição (ou seja, se o bloco vizinho F ou o bloco vizinho G não for um bloco intracodificado)
- 3) Se o bloco vizinho F ou o bloco vizinho G estiver fora de uma unidade de codificação em árvore atual (CTU)
[0120] Se um modo de intrapredição do bloco vizinho F ou um modo de intrapredição do bloco vizinho G for determinado como descrito acima, 3 candidatos de MPM podem ser derivados como na Tabela 1.
[Tabela 1]
[Tabela 1]
[0121] A Tabela 1 ilustra um algoritmo esquemático (ou seja, pseudocódigo) para configurar uma lista de MPM. Com referência à Tabela 1, se o modo de intrapredição do bloco vizinho F e o modo de intrapredição do bloco vizinho G são iguais, eles podem ser determinados.
[0122] Se um modo de intrapredição do bloco vizinho F e um modo de intrapredição do bloco vizinho G forem iguais e o número de modo de um modo de intrapredição do bloco vizinho F for menor que 2, a lista de MPM do bloco atual pode ser derivada como uma lista de MPM 1 (MPM list1). Isto é, se um modo de intrapredição do bloco vizinho F e um modo de intrapredição do bloco vizinho G são iguais e o modo de intrapredição do bloco vizinho F é o modo de intrapredição do número de modo 0 ou o modo de intrapredição do número de modo 1, a lista de MPM do bloco atual pode ser derivada como a lista de MPM 1. Neste caso, a lista de MPM 1 pode indicar uma lista de MPM configurada com candidatos de MPM {F, F-1, F+1}. F pode indicar o modo de intrapredição do bloco vizinho F. F-1 pode indicar um modo de intrapredição em que um valor obtido subtraindo 1 do número de modo de um modo de intrapredição do bloco vizinho F é um número de modo. F+1 pode indicar um modo de intrapredição em que um valor obtido pela adição de 1 ao número de modo de um modo de intrapredição do bloco vizinho F é um número de modo. Por exemplo, se o modo de intrapredição do bloco vizinho F for o modo de intrapredição do número de modo N, a lista de MPM 1 pode ser configurada com uma lista de MPM, incluindo o modo de intrapredição do número de modo N, o modo de intrapredição do número de modo N-1 e o modo de intrapredição do número de modo N+1 como candidatos de MPM.
[0123] Além disso, se um modo de intrapredição do bloco vizinho F e um modo de intrapredição do bloco vizinho G forem iguais e o número de modo de um modo de intrapredição do bloco vizinho F não for menor que 2, a lista de MPM do atual bloco pode ser derivado como uma lista de MPM 2 (MPM list2).
[0124] Além disso, se um modo de intrapredição do bloco vizinho F e um modo de intrapredição do bloco vizinho G não forem iguais e o modo de intrapredição do bloco vizinho F e o modo de intrapredição do bloco vizinho G não são modos de intrapredição de modo planar, a lista de MPM do bloco atual pode ser derivada como uma lista de MPM 3 (MPM list3).
[0125] Além disso, se um modo de intrapredição do bloco vizinho F e um modo de intrapredição do bloco vizinho G não forem iguais e a soma do número de modo de um modo de intrapredição do bloco vizinho F e o número de modo de um modo de intrapredição do bloco vizinho G é menor que 2, a lista de MPM do bloco atual pode ser derivada como uma lista de MPM 4 (MPM list4).
[0126] Além disso, se um modo de intrapredição do bloco vizinho F e um modo de intrapredição do bloco vizinho G não forem iguais e pelo menos um dentre o modo de intrapredição do bloco vizinho F e o modo de intrapredição do bloco vizinho G é um modo de intrapredição de modo planar e a soma do número de modo de um modo de intrapredição do bloco vizinho F e o número de modo de um modo de intrapredição do bloco vizinho G não é menor que 2, a lista de MPM do bloco atual pode ser derivada como uma lista de MPM 5 (MPM list5).
[0127] Entretanto, conforme o número de modos de intrapredição aumenta, o número candidatos de MPM precisa ser aumentado. Por conseguinte, o número candidatos de MPM pode ser diferente dependendo do número de modos de intrapredição. Em geral, quando o número de modos de intrapredição aumenta, o número candidatos de MPM pode aumentar. No entanto, o número candidatos de MPM nem sempre aumenta quando o número de modos de intrapredição aumenta. Por exemplo, se 35 modos de intrapredição estiverem presentes ou se 67 modos de intrapredição estiverem presentes, vários números candidatos de MPM, como 3, 4, 5 e 6, podem estar presentes dependendo do projeto.
[0128] Por exemplo, uma configuração de lista de 6 MPM pode ser executada. Ou seja, uma lista de MPM incluindo 6 candidatos de MPM pode ser configurada. Por exemplo, na configuração de lista 6-MPM, um processo de busca das localizações de vários blocos vizinhos e um processo de verificação de pruning (descontinuação) consistente para excluir o mesmo modo de intrapredição pode ser executado. Por exemplo, a ordem em que 6 candidatos de MPM são configurados pode ser a seguinte:
[0129] O bloco vizinho D, o bloco vizinho B, o modo de intrapredição planar, o modo de intrapredição DC, o bloco vizinho E, o bloco vizinho C e o bloco vizinho A.
[0130] Isto é, os blocos vizinhos podem ser derivados como candidatos de MPM na ordem de um modo de intrapredição do bloco vizinho D, um modo de intrapredição do bloco vizinho B, o modo de intrapredição de modo planar, o modo de intrapredição DC, um modo de intrapredição do bloco vizinho E, um modo de intrapredição do bloco vizinho C e um modo de intrapredição do bloco vizinho A. Se um modo de predição for o mesmo que um modo de intrapredição já derivado, ele não pode ser derivado como um candidato de MPM.
[0131] Além disso, se uma lista de MPM não inclui um candidato de MPM com um número máximo de candidatos, isto é, quando o número candidatos de MPM derivados é menor que um número máximo de candidatos, um modo de intrapredição direcional vizinho a um candidato de MPM derivado e um modo de intrapredição padrão predefinido podem ser considerados como candidatos de MPM e um processo de verificação de pruning pode ser realizado. Neste caso, o modo de intrapredição direcional vizinho ao candidato de MPM pode indicar um modo de intrapredição tendo um número de modo vizinho ao do candidato de MPM. A busca de bloco vizinho e a verificação de pruning consistente têm uma vantagem na redução de uma taxa de transferência de bits, mas podem aumentar o número de ciclos de operação de hardware para a configuração da lista de MPM de cada bloco. O pior cenário é que uma imagem 4K de 3840x2160 pode ser particionada em blocos de tamanho 4x4 para uma intrapredição. Nesse caso, um ciclo de operação de hardware aumentado para cada um dos blocos de tamanho 4x4 pode ser considerado de maneira importante na taxa de transferência. Entretanto, se um bloco vizinho codificado através de uma interpredição está ciente de um modo de intrapredição do bloco vizinho, o modo de intrapredição do bloco vizinho pode ser usado para uma configuração de lista de MPM.
[0132] Conforme descrito acima, na configuração de uma lista de MPM, o aparelho de codificação pode determinar o melhor modo de intrapredição, otimizando a taxa de bits e a distorção ao mesmo tempo, e pode codificar o melhor modo de intrapredição determinado como um fluxo de bits. O aparelho de decodificação pode analisar (decodificar) o modo de intrapredição incluído no fluxo de bits e pode realizar uma intrapredição com base no modo de intrapredição analisado. No entanto, a fim de minimizar a sobrecarga de sinalização conforme o número de modos de intrapredição aumenta, é necessária uma codificação eficiente de modo intra. Tanto o aparelho de codificação quanto o aparelho de decodificação configuram listas de MPM que usam modos de intrapredição vizinhos de blocos codificados. Neste caso, quando o melhor modo de intrapredição é um dos candidatos dentro da lista de MPM, a sobrecarga pode ser minimizada sinalizando um índice de MPM. O comprimento da lista de MPM e o método de configuração da lista de MPM podem ser diferentes dependendo de um algoritmo.
[0133] Neste caso, se os 67 modos de intrapredição forem usados para uma intrapredição, a lista de MPM incluindo os 3 candidatos de MPM existentes pode não ser suficiente para mostrar a diversidade de vários modos de intrapredição. Além disso, um esquema de configuração de lista de 6-MPM incluindo pesquisa de bloco vizinho e um processo de verificação de pruning pode afetar o rendimento porque é muito complicado. Consequentemente, as modalidades deste documento propõem o método de configuração de lista de MPM eficiente com um equilíbrio adequado entre complexidade e eficiência de codificação.
[0134] As FIGS. 12 e 13 são fluxogramas que ilustram esquematicamente um método de configuração de uma lista de MPM para um bloco atual.
[0135] Com referência às FIGS. 12 e 13, uma lista de MPM para um bloco atual incluindo k candidatos de MPM pode ser configurada. Nesse caso, k pode indicar o comprimento da lista de MPM, ou seja, o número candidatos de MPM incluídos na lista de MPM. De acordo com as modalidades divulgadas nas FIGS. 12 e 13, 5 listas de MPM eficientes (lista de MPM 1 ~ lista de MPM 5) podem ser configuradas com base em cinco condições. Ou seja, uma das 5 listas de MPM pode ser derivada como uma lista de MPM para o bloco atual com base nas cinco condições. As listas de MPM podem ser listas independentes, conforme ilustrado na FIG. 12, e podem ser listas com porções parcialmente compartilhadas, conforme ilustrado na FIG. 13. Se uma lista parcial compartilhada como na FIG. 13 for usada, um processo de duplicação pode ser evitado. As condições 5 podem ser modeladas de modo que a soma das probabilidades de todas as condições se torne 1.
[0136] A FIG. 14 é um fluxograma que ilustra uma modalidade de um método de configuração de uma lista de MPM para um bloco atual.
[0137] A FIG. 14 ilustra um método de configuração eficiente de uma lista de MPM para um bloco atual, incluindo k candidatos de MPM com base em um bloco vizinho localizado adjacente ao bloco atual. Por exemplo, k pode ser 6, e cinco condições podem ser usadas para configurar uma lista de MPM para o bloco atual entre 5 listas eficientes. Na FIG. 14, L pode indicar um modo de intrapredição do bloco vizinho B ilustrado na FIG. 11 e A pode indicar um modo de intrapredição do bloco vizinho D ilustrado na FIG. 11. Alternativamente, em contraste, L pode indicar um modo de intrapredição do bloco vizinho D ilustrado na FIG. 11 e A pode indicar um modo de intrapredição do bloco vizinho B ilustrado na FIG. 11. Na FIG. 14, um símbolo "!” é um operador lógico negativo e pode se referir a um operador "não” que converte um valor que não é verdadeiro em um valor verdadeiro e vice-versa. Por exemplo, !7 pode indicar um valor 0 e !0 pode indicar um valor 1.
[0138] Com referência às FIG. 14, o aparelho de codificação/decodifica-ção pode verificar uma condição 1 para determinar se L e A são iguais (S1400). Ou seja, o aparelho de codificação/decodificação pode determinar se L e A estão no mesmo modo de intrapredição. A condição 1 pode ser uma condição para determinar se "L == A”.
[0139] Se L e A estão no mesmo modo de intrapredição (ou seja, quando a condição 1 é satisfeita), o aparelho de codificação/decodificação pode verificar uma condição 2 para determinar se L (ou A) está em um modo de intrapredição direcional (S1405). Ou seja, o aparelho de codificação/decodificação pode determinar se L e A são iguais e o número de modo de L (ou A) é maior que o número de modo de um modo DC. A condição 2 pode ser uma condição para determinar se "L > DC_idx”.
[0140] Quando a condição 2 é satisfeita, o aparelho de codificação/decodificação pode derivar uma lista de MPM 1 como uma lista de MPM para o bloco atual (S1410). Quando a condição 2 não é satisfeita, o aparelho de codificação/decodificação pode derivar uma lista de MPM 2 como uma lista de MPM para o bloco atual (S1415).
[0141] Neste caso, a lista de MPM 1 pode ser configurada como a Tabela 2 e a lista de MPM 2 pode ser configurada como a Tabela 3.
[Tabela 2]【Tabela 3】
[Tabela 2]【Tabela 3】
[0142] Com referência às Tabela 2 e Tabela 3, a lista de MPM 1 pode incluir um primeiro candidato de MPM (mpm[0]) a um sexto candidato de MPM (mpm[5]) como na Tabela 2, a lista de MPM 2 pode incluir um primeiro candidato de MPM (mpm[0]) a um sexto candidato de MPM (mpm[5]) como na Tabela 3. Neste caso, o primeiro ao sexto candidatos de MPM podem indicar modos de intrapredição (ou seja, números de modo) indicados pelos respectivos valores de índice de MPM 0 a 5. Por exemplo, o primeiro candidato de MPM indica um modo de intrapredição atribuído a mpm[0], e pode ser indicado o valor 0 de um índice de MPM.
[0143] Se L e A não estiverem no mesmo modo de intrapredição (ou seja, quando a condição 1 não for satisfeita), o aparelho de codificação/decodificação pode derivar uma lista de MPM 1 parcialmente compartilhada (S1420).
[0144] Neste caso, a lista de MPM parcialmente compartilhada 1 pode ser configurada como a Tabela 4.
[Tabela 4]
[Tabela 4]
[0145] Com referência à Tabela 4, a lista de MPM 1 parcialmente compartilhada pode incluir um primeiro candidato de MPM (mpm[0]) indicativo de L e um segundo candidato de MPM (mpm[1]) indicativo de A. Ou seja, se L e A não forem iguais, o aparelho de codificação/decodificação pode primeiro adicionar L e A à lista de MPM. Assim, as listas de MPM 3, 4 e 5 a serem descritas posteriormente podem ser configuradas para incluir parcialmente o primeiro candidato de MPM (mpm[0]) e o segundo candidato de MPM (mpm[1]) como na Tabela 4. Neste caso, ao derivar o primeiro candidato de MPM (mpm[0]) e o segundo candidato de MPM (mpm[1]), uma ordem de índice de MPM pode ser determinada comparando os tamanhos dos números de modo de L e A. Por exemplo, com referência à Tabela 4, quando L tem um número de modo maior que A, um valor max_idx indicativo de L pode ser definido como 0 e um valor min_idx indicativo de A pode ser definido como 1. Quando L tem um número de modo menor que A, os valores max_idx e min_idx podem ser definidos inversamente.
[0146] Em seguida, o aparelho de codificação/decodificação pode verificar uma condição 3 para determinar se L e A são modos de intrapredição direcional (S1425). Ou seja, o aparelho de codificação/decodificação pode determinar se L e A não são iguais e o número de modo de cada um dentre L e A é maior que um número de modo DC. A condição 3 pode ser uma condição para determinar se "L>DC_idx AND A>DC_idx”.
[0147] Se cada um dentre L e A tiver um número de modo maior que o modo DC (ou seja, quando a condição 3 for satisfeita), o aparelho de codifica-ção/decodificação pode derivar uma lista de MPM 2 parcialmente compartilhada (S1440).
[0148] Neste caso, a lista de MPM parcialmente compartilhada 2 pode ser configurada como a Tabela 5.
[Tabela 5]
[Tabela 5]
[0149] Com referência à Tabela 5, a lista de MPM parcialmente compartilhada 2 pode incluir um terceiro candidato de MPM (mpm[2]) indicativo de um modo planar e um quarto candidato de MPM (mpm[3]) indicativo de um modo DC. Ou seja, se a condição 3 for satisfeita, isso significa que L e A são modos de intrapredição direcional. Assim, o aparelho de codificação/decodificação pode adicionar o modo planar e o modo DC, isto é, modos de intrapredição não direcional, à lista de MPM como o terceiro candidato de MPM (mpm[2]) e o quarto candidato de MPM (mpm[3]]) após o primeiro candidato de MPM (mpm[0] = L) e o segundo candidato de MPM (mpm[1] = A) incluído na lista de MPM parcialmente compartilhada 1 descrita na Tabela 4. Assim, as listas de MPM 4 e 5 a serem descritas posteriormente podem ser configuradas para incluir parcialmente o terceiro candidato de MPM (mpm[2]) e o quarto candidato de MPM (mpm[3]) na Tabela 5, juntamente com o primeiro candidato de MPM (mpm[ 0]) e o segundo candidato de MPM (mpm[1]) na Tabela 4.
[0150] Em seguida, o aparelho de codificação/decodificação pode verificar uma condição 4 para determinar se uma diferença entre o número de modo de L e o número de modo de A não é 64 e não é 1 (S1445). A condição 4 pode ser uma condição para determinar se "diff ! = 64 AND diff ! = 1”.
[0151] Por exemplo, a diferença (diff) entre o número de modo de L e o número de modo de A pode ser calculada como uma equação ilustrada na Tabela 5. Nesse caso, diff pode ser um resultado obtido subtraindo um valor menor de um valor maior no número de modo de L e no número de modo de A.
[0152] Neste caso, quando a condição 4 é satisfeita, o aparelho de codi-ficação/decodificação pode derivar uma lista de MPM 5 como uma lista de MPM para o bloco atual (S1455). Quando a condição 4 não é satisfeita, o aparelho de codificação/decodificação pode derivar uma lista de MPM 4 como uma lista de MPM para o bloco atual (S1450).
[0153] Neste caso, a lista de MPM 4 pode ser configurada como a Tabela 6, e a lista de MPM 5 pode ser configurada como a Tabela 7.
[Tabela 6]【Tabela 7】
[Tabela 6]【Tabela 7】
[0154] Cada uma dentre a lista de MPM 4 da Tabela 6 e a lista de MPM 5 da Tabela 7 pode ser configurada para incluir um quinto candidato de MPM (mpm[4]) e um sexto candidato de MPM (mpm[5]) junto com o primeiro ao quarto MPMs candidatos (mpm[0] ~ mpm[3]) descritos na Tabela 4 e Tabela 5.
[0155] Entretanto, se pelo menos um dentre L e A for um modo de intrapredição não direcional na etapa S1425 (ou seja, quando a condição 3 não for satisfeita), o aparelho de codificação/decodificação pode verificar uma condição 5 para determinar se apenas qualquer um dentre L e A é um modo de intrapredição não direcional (S1430). Ou seja, o aparelho de codificação/decodificação pode determinar se pelo menos um dentre L e A é um número de modo DC ou menos e a soma do número de modo de L e o número de modo de A é 2 ou mais. A condição 5 pode ser uma condição para determinar se "L + A >= 2”.
[0156] Quando a soma do número de modo de L e do número de modo de A é 2 ou mais (ou seja, quando a condição 5 é satisfeita), o aparelho de codi-ficação/decodificação pode derivar uma lista de MPM 3 como uma lista de MPM para o bloco atual (S1435).
[0158] Com referência à Tabela 8, a lista de MPM 3 pode ser configurada para incluir o terceiro ao sexto candidato de MPM (mpm[2] ~ mpm[5]) junto com o primeiro candidato de MPM (mpm[0]) e o segundo candidato de MPM (mpm[1]) descrito na Tabela 4. Neste caso, satisfazer a condição 5 pode significar que qualquer um dentre L e A é um modo de predição direcional e o outro é um modo de predição não direcional. Assim, a lista de MPM 3 pode incluir um modo de predição não direcional como o terceiro candidato de MPM (mpm[2]) após o primeiro e o segundo candidatos de MPM. Por exemplo, se um tendo um modo não direcional, entre L e A, é um modo planar, o terceiro candidato de MPM (mpm[2]) pode ser derivado como um modo DC. Alternativamente, se um tendo um modo não direcional, entre L e A, for um modo DC, o terceiro candidato de MPM (mpm[2]) pode ser derivado como um modo planar.
[0159] Quando a soma do número de modo de L e do número de modo de A não for 2 ou mais (ou seja, quando a condição 5 não for satisfeita), o aparelho de codificação/decodificação pode derivar uma lista de MPM 2 como uma lista de MPM para o atual bloco (S1415). Neste caso, L e A podem ser modos de predição não direcional.
[0160] Nesse caso, a lista de MPM 2 pode ser igual à Tabela 3. Com referência à Tabela 3, uma vez que ambos dentre L e A são modos de predição não direcional, na lista de MPM 2, um modo planar e um modo DC podem ser derivados como o primeiro candidato de MPM (mpm[0]) e o segundo candidato de MPM (mpm[1]), respectivamente. O terceiro ao sexto candidato de MPM restante (mpm[2] ~ mpm[5]) pode ser derivado conforme ilustrado na Tabela 3.
[0161] Na Tabela 2 a Tabela 8, em (modo de intrapredição direcional + 1), (modo de intrapredição direcional - 1), (modo de intrapredição direcional + 2), (modo de intrapredição direcional - 2), etc., um valor pode ser matematicamente adicionado ou subtraído. No entanto, em alguns casos, o cálculo matemático pode não ser simplesmente executado. Por exemplo, em um modo de intrapredição não direcional, a consistência de um modo de intrapredição vizinho pode não ser mantida subtraindo ou adicionando um modo de intrapredição direcional ou um índice de modo de intrapredição direcional pode ser excedido. Por exemplo, um valor obtido subtraindo 1 de um modo de intrapredição direcional pode ser derivado como um modo intra 1 indicativo de um índice DC (modo DC). 67 é obtido adicionando 1 ao modo de intrapredição direcional n°. 66 e, portanto, excede o índice 66 de um modo intra máximo disponível. Consequentemente, uma operação de adição ou subtração de um modo pode ser limitada da seguinte forma, com o uso de uma aritmética modular (indicada por %). Ou seja, um valor indicativo de um modo de intrapredição não direcional que não tem consistência ou um valor que excede um índice de modo intra máximo disponível pode ser evitado de ser derivado. Por exemplo, a adição ou subtração de um modo usando a aritmética modular pode ser derivada como a Tabela 9.
[Tabela 9]
[Tabela 9]
- - Modo Intra -1 : (Modo intra + 62) % 65 + 2
- - Modo Intra +1 : (Modo intra - 1)% 65 + 2
- - Modo Intra -2 : (Modo intra + 61) % 65 + 2
- - Modo Intra +2 : (Modo intra)% 65 + 2
[0162] A FIG. 15 é um fluxograma que ilustra outra modalidade de um método de configuração de uma lista de MPM para um bloco atual.
[0163] A FIG. 15 ilustra um método de configuração eficiente de uma lista de MPM para um bloco atual, incluindo k candidatos de MPM com base em um vizinho localizado adjacente ao bloco atual. Por exemplo, k pode ser 6 e cinco condições podem ser usadas para configurar uma lista de MPM para o bloco atual entre 5 listas eficientes. Na FIG. 15, L pode indicar um modo de intrapredição do bloco vizinho B ilustrado na FIG. 11 e A pode indicar um modo de intrapredição do bloco vizinho D ilustrado na FIG. 11. Alternativamente, em contraste, L pode indicar um modo de intrapredição do bloco vizinho D ilustrado na FIG. 11 e A pode indicar um modo de intrapredição do bloco vizinho B ilustrado na FIG. 11. Na FIG. 15, um símbolo "!” é um operador lógico negativo e pode se referir a um operador "não” que converte um valor que não é verdadeiro em um valor verdadeiro e vice-versa. Por exemplo, !7 pode indicar um valor 0 e !0 pode indicar um valor 1.
[0164] Além disso, o método de configuração de lista de MPM de acordo com a modalidade da FIG. 15 é semelhante ao da FIG. 14, e corresponde a um caso em que uma condição usada para configurar a lista de MPM é diferente. Consequentemente, na modalidade da FIG. 15, uma descrição detalhada que se sobrepõe à da FIG. 14 é omitida e apenas uma configuração diferente é descrita.
[0165] O aparelho de codificação/decodificação verifica uma condição 1 para determinar se L e A são iguais (S1500). Se L e A são o mesmo modo de intrapredição, o aparelho de codificação/decodificação pode verificar uma condição 2 para determinar se L (ou A) é um modo de intrapredição direcional (S1510). A condição 1 pode ser uma condição para determinar se "L == A” e uma condição 2 pode ser uma condição para determinar se "L > DC_idx”.
[0166] Quando a condição 1 e a condição 2 são satisfeitas, o aparelho de codificação/decodificação pode configurar uma lista de MPM 1 derivando um primeiro candidato de MPM (mpm[0]) a um sexto candidato de MPM (mpm[5]) como na Tabela 2 (S1510).
[0167] Alternativamente, quando a condição 1 é satisfeita e a condição 2 não é satisfeita, o aparelho de codificação/decodificação pode configurar uma lista de MPM 2 derivando um primeiro candidato de MPM (mpm[0]) a um sexto candidato de MPM (mpm[5]) como na Tabela 3 (S1515).
[0168] Na etapa de determinação S1500 da condição 1, se for determinado que L e A são o mesmo modo de intrapredição, o aparelho de codifica-ção/decodificação pode configurar uma lista de MPM parcialmente compartilhada derivando um primeiro candidato de MPM (mpm[0]) indicativo de L e um segundo candidato de MPM (mpm[1]) indicativo de A como na Tabela 4 (S1520). Além disso, o aparelho de codificação/decodificação pode verificar uma condição 3 para determinar se L e A são modos de intrapredição direcional (S1525) e pode derivar os candidatos de MPM restantes (mpm[2] ~ mpm[5]) com base em se a condição 3 é satisfeita. A condição 3 pode ser uma condição para determinar se "L>DC_idx AND A>DC_idx”.
[0169] Neste caso, quando a condição 3 é satisfeita, o aparelho de codificação/decodificação pode derivar um terceiro candidato de MPM (mpm[2]) indicativo de um modo planar e um quarto candidato de MPM (mpm[3]) indicativo de um modo DC como na Tabela 5, e pode configurar uma lista de MPM 2 parcialmente compartilhada (S1540). Além disso, se L e A são modos de intrapredição direcional, o aparelho de codificação/decodificação pode verificar uma condição 4 para determinar se uma diferença (diff) entre os números de modo de L e A é menor que 63 e não é 1 (S1545). A condição 4 pode ser uma condição para determinar se "diff <63 AND diff !=1”.
[0170] Quando a condição 4 é satisfeita, o aparelho de codificação/de-codificação pode configurar uma lista de MPM 5 derivando um quinto candidato de MPM (mpm[4]) e um sexto candidato de MPM (mpm[5]) como na Tabela 7 (S1555).
[0171] Alternativamente, quando a condição 4 não for satisfeita, o aparelho de codificação/decodificação pode configurar uma lista de MPM 4 derivando um quinto candidato de MPM (mpm[4]) e um sexto candidato de MPM (mpm[5]) como na Tabela 6 (S1550).
[0172] Neste caso, a lista de MPM 4 e a lista de MPM 5 podem ser configuradas para incluir o quinto candidato de MPM (mpm[4]) e o sexto candidato de MPM (mpm[5]) junto com o primeiro ao quarto candidatos de MPM (mpm[0] ~ mpm[3]) descrito na Tabela 4 e na Tabela 5.
[0173] Entretanto, na etapa de determinação S1525 da condição 3, se for determinado que pelo menos um dentre L e A é um modo de intrapredição não direcional, o aparelho de codificação/decodificação pode verificar uma condição 5 para determinar se apenas qualquer um dentre L e A é um modo de intrapredição não direcional (S1530). Ou seja, o aparelho de codificação/decodificação pode determinar se pelo menos um dentre L e A é um número de modo DC ou menos e a soma do número de modo de L e o número de modo de A é 2 ou mais. A condição 5 pode ser uma condição para determinar se "L + A >= 2”.
[0174] Quando a soma do número de modo de L e do número de modo de A é 2 ou mais (ou seja, quando a condição 5 é satisfeita), o aparelho de codi-ficação/decodificação pode configurar uma lista de MPM 3 derivando um terceiro candidato de MPM (mpm[2]) e um sexto candidato de MPM (mpm[5]) como a Tabela 8 (S1535).
[0175] Neste caso, a lista de MPM 3 pode ser configurada para incluir os candidatos de MPM restantes (mpm[2] ~ mpm[5]) junto com o primeiro candidato de MPM (mpm[0]) e o segundo candidato de MPM (mpm[1]) descrito na Tabela 4.
[0176] Quando a soma do número de modo de L e do número de modo de A não for 2 ou mais (ou seja, quando a condição 5 não for satisfeita), o aparelho de codificação/decodificação pode configurar uma lista de MPM 2 derivando candidatos de MPM (mpm[0] ~ mpm[5]) como na Tabela 3 (S1515).
[0177] O método de configuração de uma lista de MPM nas modalidades acima mencionadas pode ser realizado no aparelho de codificação/decodificação. Neste caso, ao configurar a lista de MPM, o aparelho de codificação pode derivar o melhor modo de intrapredição a ser aplicado a um bloco atual e pode determinar se o melhor modo de intrapredição derivado pertence a uma lista de MPM incluindo candidatos de MPM configurados com o uso de um método, como aqueles das modalidades acima mencionadas. Se um modo de intrapredição de um bloco atual pertence a uma lista de MPM incluindo candidatos de MPM, o aparelho de codificação pode codificar um sinalizador de MPM e um índice de MPM. Neste caso, o sinalizador de MPM pode indicar se o modo de intrapredição do bloco atual pertence à lista de MPM (ou seja, candidatos de MPM). O índice de MPM pode indicar qual modo MPM é aplicado como modo de intrapredição do bloco atual, entre os candidatos de MPM incluídos na lista de MPM. Em contraste, se o modo de intrapredição do bloco atual não pertencer à lista de MPM incluindo os candidatos de MPM, o aparelho de codificação pode codificar o modo de intrapredição do bloco atual.
[0178] O aparelho de decodificação pode configurar uma lista de MPM aplicando o mesmo método das modalidades mencionadas acima de forma idêntica ao aparelho de codificação. Além disso, o aparelho de decodificação pode receber um sinalizador de MPM do aparelho de codificação e pode identificar se um modo de intrapredição aplicado a um bloco atual está incluído em uma lista de MPM (ou seja, candidatos de MPM) com o uso do sinalizador de MPM. Se o modo de intrapredição aplicado ao bloco atual estiver incluído na lista de MPM (ou seja, candidatos de MPM), o aparelho de decodificação pode derivar um modo de intrapredição aplicado ao bloco atual com o uso de um índice de MPM recebido do aparelho de codificação. Em contraste, se o modo de intrapredição aplicado ao bloco atual não estiver incluído na lista de MPM (ou seja, candidatos de MPM), o aparelho de decodificação pode derivar um modo de intrapredição aplicado ao bloco atual com o uso de um índice de modo de predição (ou, índice de modo de predição restante; informações de modo restante) indicativo de um modo de predição específico, entre os modos de predição restantes, exceto os candidatos de MPM.
[0179] A seguir, é proposto um método de configuração de uma lista de MPM estendida com complexidade semelhante, comparando a lista de MPM estendida com uma lista de MPM incluindo 3 candidatos de MPM. A lista de MPM estendida se refere a uma lista de MPM incluindo três ou mais candidatos de MPM, e pode incluir 3, 4, 5 ou 6 candidatos de MPM, por exemplo. Em um método proposto a ser descrito posteriormente, uma modalidade na qual uma lista de MPM incluindo 6 candidatos de MPM é gerada com o uso de dois modos de intrapredição vizinhos (modo de intrapredição vizinho à esquerda e modo de intrapredição vizinho acima). Neste caso, o modo de intrapredição vizinho à esquerda (LEFT) pode indicar um modo de intrapredição do bloco vizinho D na FIG. 11, e o modo de intrapredição vizinho acima (ABOVE) pode indicar um modo de intrapredição do bloco vizinho B na FIG. 11.
[0180] Ao configurar a lista de MPM estendida, o motivo para os 3 candidatos de MPM serem usados é que há vantagens na simplicidade e na taxa de transferência. No entanto, a complexidade pode ser aumentada porque o método existente usando 6 candidatos de MPM inclui um processo de busca das localizações de vários blocos vizinhos, um processo de pruning contínua, etapas para gerar a lista de MPM, requisitos de buffer de linha e dependência de análise. Sendo assim, como no método com 3 candidatos de MPM, é proposto um método capaz de obter vantagens em complexidade e rendimento mesmo com o uso de 6 candidatos de MPM.
[0181] Em uma modalidade, uma lista de MPM pode ser configurada com base em um algoritmo (ou seja, pseudocódigo), como na Tabela 10.
[Tabela 10]
[Tabela 10]
[0182] Com referência à Tabela 10, a lista de MPM de um bloco atual pode ser gerada com base em LEFT e ABOVE, ou seja, modos de intrapredição vizinhos. Neste caso, LEFT pode indicar um modo de intrapredição do bloco vizinho D na FIG. 11 e ABOVE pode indicar um modo de intrapredição do bloco vizinho B na FIG. 11. Além disso, o bloco vizinho D pode indicar um bloco vizinho à esquerda localizado no lado inferior, entre os blocos vizinhos à esquerda vizinhos à esquerda do bloco atual. O bloco vizinho B pode indicar um bloco vizinho de topo localizado no lado à extrema direita, entre os blocos vizinhos próximos ao topo do bloco atual.
[0183] Especificamente, os modos de intrapredição de LEFT e ABOVE podem ser derivados. Além disso, a lista de MPM (ou seja, candidatos de MPM) de um bloco atual pode ser definida como MPM_ordering_0 com base nos modos de intrapredição de LEFT e ABOVE. Nesse caso, se LEFT e ABOVE forem iguais e o número de modo de LEFT for maior ou igual a um modo DC, a lista de MPM (ou seja, candidatos de MPM) do bloco atual pode ser definida como MPM_ordering_1. Alternativamente, se LEFT e ABOVE não forem iguais e o número de modo à esquerda for maior que o modo DC e o número de modo ABOVE for maior que o modo DC, a lista de MPM (ou seja, candidatos de MPM) do atual bloco pode ser definida como MPM_ordering_2. Alternativamente, se LEFT e ABOVE não forem iguais, pelo menos um dentre o número de modo LEFT e o número de modo ABOVR não é maior que o modo DC, e a soma do número de modo LEFT e o número de modo ABOVE é maior que o número de modo de um modo DC, a lista de MPM (ou seja, candidatos de MPM) do bloco atual pode ser definida como MPM_ordering_3.
[0184] Neste caso, MPM_ordering_0, MPM_ordering_1, MPM_orde-ring_2 ou MPM_ordering_3 podem ter sido configurados para incluir candidatos de MPM de acordo com uma ordem predeterminada, conforme descrito nas FIGS. 12 a 15.
[0185] Além disso, se um dos modos de intrapredição restantes, exceto candidatos de MPM derivados, for um modo de intrapredição aplicado a um bloco atual, conforme descrito acima, a codificação de MPM do bloco atual pode ser realizada com base nas informações de modo restantes. Essas informações de modo restantes podem ser codificadas/decodificadas pela aplicação de codificação binária truncada (TB). Se a codificação TB for aplicada, as informações de modo restantes podem ser usadas para gerar bits de 1 a 5 bits de forma variável e podem ser submetidas ao processamento de binarização. Consequentemente, ao derivar as informações de modo restantes, o número de bits pode ser reduzido e a eficiência de codificação pode ser melhorada executando o processamento de binarização TB.
[0186] Em outra modalidade, uma lista de MPM pode ser configurada com base em um algoritmo (ou seja, especificação), como a Tabela 11.
[Tabela 11]
Processo de derivação para modo de intrapredição luma As entradas para esse processo são:
[Tabela 11]
Processo de derivação para modo de intrapredição luma As entradas para esse processo são:
- - uma localização luma (xCb, yCb) especificando a amostra de topo à esquerda do bloco de condição luma atual em relação à amostra de luma de topo à esquerda da gravura atual,
- - uma variável cbWidth esqoecificando a largura do bloco de codificação atual em amostras de luma,
- - uma variável cbHeight especificando a altura do bloco de codificação atual nas amostras de luma.
Tabela 2.3-1 especifica o valor para modo de intrapredição IntraPredMo-deY[xCb][yCb] e os nomes associados.
Tabela 2.3-1 Especificação de modo de intrapredição e nomes associados NOTA-: O modo de intrapredição INTRA_CCLM é apenas aplicável aos componentes de croma.
IntraPredModeY[xCb][yCb] é derivado pelas seguintes etapas ordenadas:
1. As localizações vizinhas (xNbA, yNbA) e (xNbB, yNbB) são definidas igual a (xCb - 1, yCb+ cbHeight -1) e (xCb+ cbWidth - 1, yCb -1), respectivamente.
2. Para X sendo substituído por A ou B, as variáveis candIntraPredModeX são derivadas como segue:
- O processo de derivação de disponibilidade para um bloco conforme especificado na frase 6.4.X [Ed.(BB): Neighbouring blocks availability checking process tdb] é invocada com a localização (xCurr, yCurr) definida igual a (xCb, yCb) e localização vizinha (xNbY, yNbY) definida igual a (xNbX, yNbX), e a saída é designada para availableX.
- O modo de intrapredição candidato candIntraPredModeX é derivado como segue:
- - Se uma ou mais das seguintes condições são verdadeiras, candItraPred-ModeX é definido igual a INTRA_PLANAR.
- - A variável availableX é igual a FALSE.
- - CuPredMode[xNbX][yNbY] não é igual a MODE_INTRA.
- - X é igual a B e yCb - 1 é menor que ((yCb >> CtLog2SizeY) << CtbLog2Si-zeY).
- - Caso contrário, candIntraPredModeX é definido igual a IntraPredMo-deY[xNbX][yNbX].
- candModeList[0] = candIntraPredModeA(8-1)
candModeList[1] = ! candIntraPredModeA(8-2)
candModeList[2] = INTRA_ANGULAR50(8-3)
candModeList[3] = INTRA_ANGULAR18(8-4)
candModeList[4] = INTRA_ANGULAR46(8-5)
candModeList[5] = INTRA_ANGULAR54(8-6)
- Se candIntraPredModB é igual a candIntraPredModeA, o seguinte se aplica:
- Se candIntraPredModA for maior que 1, cadModeList[x] com x = 0..5 é derivado como segue:
candModeList[0] = candIntraPredModeA(8-7)
candModeList[1] = INTRA_PLANAR(8-8)
candModeList[2] = INTRA_DC(8-9)
candModeList[3] = 2 + ((candIntraPredModeA + 62) % 65)(8-10)
candModeList[4] = 2 + ((candIntraPredModeA - 1 % 65)(8-11)
candModeList[5] = 2 + ((candIntraPredModeA + 61) % 65)(8-12)
- Caso contrário (candIntraPredModeB não é igual a candIntraPredMo-deA), o seguinte se aplica:
- candModeList[0] = candModeList[1] são derivados como segue:
candModeList[0] = candIntraPredModeA(8-13)
candModeList[1] = candIntraPredModeB(8-14)
- Definir a variável biggerldx é como segue
Biggerldx = candModeList[0] > candModeList[1] ? 0:1(8-15)
- Se ambos dentre candIntraPredModeA e candIntraPredModeB são maiores que 1,
candModeList[x] com x = 2..5 é derivado como segue:
candModeList[2] = INTRA_PLANAR(8-16)
candModeList[3] = INTRA_DC(8-17)
- Se candModeList[biggerldx] - candModList[!biggerldx] não for igual nem a 64 nem a 1, o seguinte se aplica:
candModeList[4] = 2 + ((candModeList[biggerldx] + 62) % 65)(8-18)
candModeList[5] = 2 + ((candModeList[biggerldx] - 1) % 65)(8-19)
-Caso contrário, o seguinte se aplica:
candModeList[4] = 2 + ((candModeList[biggerldx] + 61) % 65)(8-20)
candModeList[5] = 2 + ((candModeList[biggerldx] % 65)(8-21)
- Caso contrário, se a soma de candIntraPredModeA e candIntraPredModeB form maior ou igual a 2, o seguinte se aplica:
candModeList[2] = ! candModeList[! Biggerldx](8-22)
candModeList[3] = 2 + ((candModeList[biggerldx] + 62) %65)(8-23)
candModeList[4] = 2 + ((candModeList[biggerldx] - 1) %65)(8-24)
candModeList[5] = 2 + ((candModeList[biggerldx] + 61) %65)(8-25)
4. IntraPredModeY[xCb][yCb] é derivado por aplicação do seguinte procedimento:
- Se intra_luma_mpm_flag[xCb][yCb] é igual a 1, o IntraPredMo-deY[xCb][yCb] é definido igual a candModeList[in-tra_luma_mpm_idx[xCb][yCb]].
- Caso contrário, IntraPredModeY[xCb][yCb] é derivado pela aplicação das seguintes etapas ordenadas:
1. A matriz candModeList[x], x = 0..5 é modificada pelas seguintes etapas ordenadas:
- i. Para i sequencialmente igual a 0 a 4, inclusive, aplicar:
- ii. Para j sequencialmente igual a i + 1 para 5, inclusive, comparar can-dModeList[i] com candModeList[j], quando candModeList[i] for maior que can-dModeList[j], ambos os valores são trocados como segue:
2. IntraPredModeY[xCb][yCb] é derivado pelas seguintes etapas ordenadas:
- i. IntraPredModeY[xCb][yCb] é definido igual a Intra_luma_mpm_remaider[xCb][yCb].
- ii. Para i igual a 0 a 5, inclusive, quando IntraPredModeY[xCb][yCb] é maior que ou igual a candModeList[i], o valor de IntraPredModeY[xCb][yCb] é incrementado por um.
[0187] Com referência à Tabela 11, os modos de intrapredição candidatos podem ser derivados com base em um bloco vizinho de um bloco atual. Uma lista de MPM para o bloco atual pode ser configurada com base nos modos de intrapredição candidatos. Os modos de intrapredição candidatos podem incluir um modo de intrapredição A candidato e um modo de intrapredição B candidato.
[0188] Por exemplo, quando pelo menos uma das condições a serem descritas posteriormente for verdadeira (ou seja, quando pelo menos uma das condições a serem descritas posteriormente for satisfeita, o modo de intrapredição A candidato pode ser definido como um modo de intrapredição de modo planar.
- - Um bloco vizinho A não está disponível
- - Uma intrapredição não é aplicada ao bloco vizinho A
[0189] Neste caso, o bloco vizinho A pode ser um bloco vizinho à esquerda de um bloco atual. O bloco vizinho à esquerda pode ser um bloco vizinho à esquerda localizado no lado inferior, entre os blocos vizinhos à esquerda vizinhos ao bloco atual. Por exemplo, se o tamanho de um bloco atual for cbWidth x cbHeight e um componente x e um componente y na posição de amostra de topo à esquerda do bloco atual são xCb e yCb, o bloco vizinho A pode ser um bloco incluindo uma amostra nas coordenadas (xCb - 1, yCb + cbHeight - 1). Entretanto, o bloco vizinho A pode indicar o bloco vizinho D da FIG. 11.
[0190] Quando todas as condições não são verdadeiras (ou seja, quando todas as condições não são satisfeitas), o modo de intrapredição A candidato pode ser definido como um modo de intrapredição do bloco vizinho A.
[0191] Além disso, quando pelo menos uma das condições a serem descritas posteriormente for verdadeira (ou seja, quando pelo menos uma das condições a serem descritas posteriormente for satisfeita, o modo de intrapredição B candidato pode ser definido como um modo de intrapredição de modo planar.
- - Um bloco vizinho B não está disponível
- - Uma intrapredição não é aplicada ao bloco vizinho B
- - yCb -1 é menor que ((yCb >> CtbLog2SizeY) << CtbLog2SizeY)
[0192] Neste caso, o bloco vizinho B pode ser um bloco vizinho de topo do bloco atual. O bloco vizinho de topo pode ser um bloco vizinho de topo localizado no lado à extrema direita entre os blocos vizinhos de topo vizinhos ao bloco atual. Por exemplo, se o tamanho de um bloco atual for cbWidth x cbHeight e um componente x e um componente y na posição de amostra de topo à esquerda do bloco atual são xCb e yCb, o bloco vizinho B pode ser um bloco incluindo uma amostra nas coordenadas (xCb+ cbWidth - 1, yCb - 1). Entretanto, CtbLog2SizeY pode indicar o tamanho de uma CTU atual, e ((yCb >> CtbLog2Si-zeY) << CtbLog2SizeY) pode indicar coordenadas no limite de topo da CTU atual. Ou seja, um caso em que yCb-1 é menor que ((yCb >> CtbLog2SizeY) << CtbLog2SizeY) pode indicar um caso em que o bloco vizinho B está fora da faixa de CTU atual. Ou seja, a condição acima mencionada pode indicar um caso em que o bloco vizinho B está fora da faixa da CTU atual.
[0193] Quando todas as condições não são verdadeiras (ou seja, quando todas as condições não são satisfeitas), o modo de intrapredição B candidato pode ser definido como um modo de intrapredição do bloco vizinho B.
[0194] Se os modos de intrapredição candidatos foram derivados, a lista de MPM do bloco atual pode ser configurada como uma primeira lista de MPM. A primeira lista de MPM pode ser configurada com um primeiro candidato de MPM indicativo de um modo de intrapredição A candidato, um segundo candidato de MPM indicativo do modo de intrapredição de um valor obtido executando uma operação no modo de intrapredição A candidato com o uso de um operador de lógica negativa, um terceiro candidato de MPM indicativo do modo de intrapredição n°. 50, um quarto candidato de MPM indicativo do modo de intrapredição n°. 18, um quinto candidato de MPM indicativo do modo de intrapredição n°. 46 e um sexto candidato de MPM indicativo do modo de intrapredição n° 54.
[0195] Depois disso, pode ser determinado se o modo de intrapredição B candidato e o modo de intrapredição A candidato são iguais.
[0196] Neste caso, se o modo de intrapredição B candidato e o modo de intrapredição A candidato são iguais, se o modo de intrapredição A candidato for maior que 1 pode ser determinado. Quando o modo de intrapredição A candidato for maior que 1, a lista de MPM do bloco atual pode ser configurada como uma segunda lista de MPM. A segunda lista de MPM pode ser configurada com um primeiro candidato de MPM indicativo do modo de intrapredição A candidato, um segundo candidato de MPM indicativo de um modo de intrapredição de modo planar, um terceiro candidato de MPM indicativo de um modo de intrapredição DC, um quarto candidato de MPM indicativo de um modo de intrapredição derivado como 2 + ((candIntraPredModeA + 62) % 65), um quinto candidato de MPM indicativo de um modo de intrapredição derivado como 2 + ((candlntraPredMo-deA - 1) % 65), e um sexto candidato de MPM indicativo de um modo de intrapredição derivado como 2 + ((candIntraPredModeA + 61) % 65).
[0197] Caso contrário, se o modo de intrapredição B candidato e o modo de intrapredição A candidato não forem iguais, primeiro, o primeiro candidato de MPM e o segundo candidato de MPM do bloco atual podem ser derivados. O primeiro candidato de MPM pode ser derivado como o modo de intrapredição A candidato e o segundo candidato de MPM pode ser derivado como o modo de intrapredição B candidato. Além disso, largeIdx pode ser definido. Quando o primeiro candidato de MPM é maior que o segundo candidato de MPM, biggerIdx pode ser derivado como 0. Quando o primeiro candidato de MPM não é maior que o segundo candidato de MPM, biggerIdx pode ser derivado como 1.
[0198] Em seguida, se o modo de intrapredição A candidato e o modo de intrapredição B candidato são maiores que 1 pode ser determinado (ou seja, se o número de modo do modo de intrapredição A candidato e o número de modo do modo de intrapredição B candidato são maiores de 1 pode ser determinado). Neste caso, quando o modo de intrapredição A candidato e o modo de intrapredição B candidato são maiores que 1, o terceiro candidato de MPM e o quarto candidato de MPM do bloco atual podem ser derivados. O terceiro candidato de MPM pode ser derivado como um modo de intrapredição de modo planar e o quarto candidato de MPM pode ser derivado como um modo de intrapredição DC.
[0199] Em seguida, se uma diferença (diff) entre um candidato de MPM indicado por um índice de MPM tendo um valor de biggerIdx e um candidato de MPM indicado por um índice de MPM tendo um valor (ou seja, !biggerIdx) obtido ao realizar uma operação em biggerIdx com o uso de um operador lógico negativo não é 64 e também não é 1 pode ser determinado.
[0200] Quando a diferença não é 64 e também não é 1, o quinto candidato de MPM e o sexto candidato de MPM do bloco atual podem ser derivados. O quinto candidato de MPM pode ser derivado como um modo de intrapredição derivado como 2 + ((candModeList[biggerIdx] + 62) % 65). O sexto candidato de MPM pode ser derivado como um modo de intrapredição derivado como 2 + ((candModeList[biggerIdx] - 1) % 65).
[0201] Caso contrário, se a diferença for 64 ou 1, o quinto candidato de MPM e o sexto candidato de MPM do bloco atual podem ser derivados. O quinto candidato de MPM pode ser derivado como um modo de intrapredição derivado como 2 + ((candModeList[biggerIdx] + 61) % 65). O sexto candidato de MPM pode ser derivado como um modo de intrapredição derivado como 2 + (candMo-deList[biggerIdx] % 65).
[0202] Entretanto, quando a soma do modo de intrapredição A candidato e do modo de intrapredição B candidato for maior ou igual a 2, o terceiro candidato de MPM, o quarto candidato de MPM, o quinto candidato de MPM e o sexto candidato de MPM do bloco atual podem ser derivados. O terceiro candidato de MPM pode ser derivado como um modo de intrapredição derivado como um valor obtido pela realização de uma operação em um candidato de MPM, indicado por um índice de MPM tendo um valor (ou seja, IbiggerIdx) executando uma operação em biggerIdx com o uso de um operador lógico negativo, com o uso de um operador lógico negativo. O quarto candidato de MPM pode ser derivado como um modo de intrapredição derivado como 2 + ((candModeList[biggerIdx] + 62) % 65). O quinto candidato de MPM pode ser derivado como um modo de intrapredição derivado como 2 + ((candModeList[biggerIdx] -1) % 65). O sexto candidato de MPM pode ser derivado como um modo de intrapredição derivado como 2 + ((candModeList[biggerIdx] + 61) % 65).
[0203] Em outra modalidade, uma lista de MPM pode ser configurada com o uso de um método diferente do algoritmo proposto na Tabela 11. Uma lista de MPM pode ser configurada com o uso de um algoritmo (ou seja, especificação), como na Tabela 12.
[Tabela 12]
Processo de derivação para modo de intrapredição luma
As entradas para esse processo são:
[Tabela 12]
Processo de derivação para modo de intrapredição luma
As entradas para esse processo são:
- - uma localização luma (xCb, yCb) especificando a amostra de topo à esquerda do bloco de condição luma atual em relação à amostra de luma de topo à esquerda da gravura atual,
- - uma variável cbWidth esqoecificando a largura do bloco de codificação atual em amostras de luma,
- - uma variável cbHeight especificando a altura do bloco de codificação atual nas amostras de luma.
A Tabela 8.1 especifica o valor para o modo de intrapredição IntraPredModeY [xCb][yCb] e os nomes associados.
Tabela 8-1 Especificação de modo de intrapredição e nomes associadosNOTA-: O modo de intrapredição INTRA_CCLM é apenas aplicável aos componentes de croma.
IntraPredModeY[xCb][yCb] é derivado pelas seguintes etapas ordenadas:
As localizações vizinhas (xNbA, yNbA) e (xNbB, yNbB) são definidas igual a (xCb - 1, yCb+ cbHeight -1) e (xCb+ cbWidth - 1, yCb -1), respectivamente.
Para X sendo substituído por A ou B, as variáveis candIntraPredModeX são derivadas como segue:
- O processo de derivação de disponibilidade para um bloco conforme especificado na frase 6.4.X [Ed.(BB): Neighbouring blocks availability checking process tdb] é invocada com a localização (xCurr, yCurr) definida igual a (xCb, yCb) e localização vizinha (xNbY, yNbY) definida igual a (xNbX, yNbX), e a saída é designada para availableX.
- O modo de intrapredição candidato candIntraPredModeX é derivado como segue:
- - Se uma ou mais das seguintes condições são verdadeiras, candItraPred-ModeX é definido igual a INTRA_PLANAR.
- - A variável availableX é igual a FALSE.
- - CuPredMode[xNbX][yNbY] não é igual a MODE_INTRA.
- - X é igual a B e yCb - 1 é menor que ((yCb >> CtLog2SizeY) << CtbLog2Si-zeY).
- - Caso contrário, candIntraPredModeX é definido igual a IntraPredMo-deY[xNbX][yNbX].
- candModeList[0] = candIntraPredModeA(8-1)
candModeList[1] = ! candIntraPredModeA(8-2)
candModeList[2] = INTRA_ANGULAR50(8-3)
candModeList[3] = INTRA_ANGULAR18(8-4)
candModeList[4] = INTRA_ANGULAR46(8-5)
candModeList[5] = INTRA_ANGULAR54(8-6)
- Se candIntraPredModB é igual a candIntraPredModeA, o seguinte se aplica:
- Se candIntraPredModA for maior que 1, cadModeList[x] com x = 0..5 é derivado como segue:
candModeList[0] = candIntraPredModeA(8-7)
candModeList[1] = INTRA_PLANAR(8-8)
candModeList[2] = INTRA_DC(8-9)
candModeList[3] = 2 + ((candIntraPredModeA + 61) % 64)(8-10)
candModeList[4] = 2 + ((candIntraPredModeA - 1 % 64)(8-11)
candModeList[5] = 2 + ((candIntraPredModeA + 60) % 64)(8-12)
- Caso contrário (candIntraPredModeB não é igual a candIntraPredMo-deA), o seguinte se aplica:
- candModeList[0] = candModeList[1] são derivados como segue:
candModeList[0] = candIntraPredModeA(8-13)
candModeList[1] = candIntraPredModeB(8-14)
- Definir a variável biggerldx é como segue
Biggerldx = candModeList[0] > candModeList[1] ? 0:1(8-15)
- Se ambos dentre candIntraPredModeA e candIntraPredModeB são maiores que 1,
candModeList[x] com x = 2..5 é derivado como segue:
candModeList[2] = INTRA_PLANAR(8-16)
candModeList[3] = INTRA_DC(8-17)
- Se candModeList[biggerldx] -candModList[!biggerldx] for maior que 1 a menor que 63, o seguinte se aplica:
candModeList[4] = 2 + ((candModeList[biggerldx] + 61) % 64)(8-18)
candModeList[4] = 2 + ((candModeList[biggerldx] - 1) % 65)(8-19)
-Caso contrário, o seguinte se aplica:
candModeList[4] = 2 + ((candModeList[biggerldx] + 60) % 64)(8-20)
candModeList[5] = 2 + ((candModeList[biggerldx] % 64)(8-21)
- Caso contrário, se a soma de candIntraPredModeA e candIntraPredModeB form maior ou igual a 2, o seguinte se aplica:
candModeList[2] = ! candModeList[! Biggerldx](8-22)
candModeList[3] = 2 + ((candModeList[biggerldx] + 61) %64)(8-23)
candModeList[4] = 2 + ((candModeList[biggerldx] - 1) %64)(8-24)
candModeList[5] = 2 + ((candModeList[biggerldx] + 60) %64)(8-25)
IntraPredModeY[xCb][yCb] é derivado por aplicação do seguinte procedimento:
- Se intra_luma_mpm_flag[xCb][yCb] é igual a 1, o IntraPredMo-deY[xCb][yCb] é definido igual a candModeList[in-tra_luma_mpm_idx[xCb][yCb]].
- Caso contrário, IntraPredModeY[xCb][yCb] é derivado pela aplicação das seguintes etapas ordenadas:
A matriz candModeList[x], x = 0..5 é modificada pelas seguintes etapas ordenadas:
i. Para i sequencialmente igual a 0 a 4, inclusive, aplicar:
ii. Para j sequencialmente igual a i + 1 para 5, inclusive, comparar can-dModeList[i] com candModeList[j], quando (candModeList[i] for maior que candModeList[j]) ambos os valores são trocados como segue:
(candModeList[i], candModeList[j]) = Swap(candModeList[i], candMo-deList[j]) (8-26)
IntraPredModeY[xCb][yCb] é derivado pelas seguintes etapas ordenadas:
iii. IntraPredModeY[xCb][yCb] é definido igual a intra_luma_mpm_re-mainder[xCb][yCb].
iv. Para i igual a 0 a 5, inclusive, quando IntraPredModeY[xCb][yCb] é maior que ou igual a candModeList[i], o valor de IntraPredModeY[xCb][yCb] é incrementado por um.
A variável IntraPredModeY[x][y] com x = xCb..xCb + cbWidth -1 ey = yCb..yCb + cbHeigh - 1 é definido para ser igual a IntraPredModeY[xCb][yCb].
[0204] Com referência à Tabela 12, uma condição para derivar uma lista de MPM é diferente daquela da Tabela 11, e os candidatos de MPM derivados com base em cada condição também são diferentes daqueles da Tabela 11. Neste caso, uma descrição detalhada do conteúdo que se sobrepõe ao da Tabela 11 é omitida.
[0205] Com referência à Tabela 12, os modos de intrapredição A e B candidatos podem ser derivados com base nos blocos vizinhos A e B de um bloco atual. Neste caso, uma lista de MPM pode ser configurada de forma diferente dependendo se uma condição predeterminada ser satisfeita com base no modo de intrapredição A candidato e no modo de intrapredição B candidato.
[0206] Em uma modalidade, se o modo de intrapredição A candidato e o modo de intrapredição B candidato são iguais pode ser determinado. Pode ser determinado se o modo de intrapredição A candidato ou o modo de intrapredição B candidato tem um número de modo maior que um modo DC (ou seja, n°. 1). Quando o modo de intrapredição A candidato e o modo de intrapredição B candidato não são iguais, se tanto o modo de intrapredição A candidato quanto o modo de intrapredição B candidato têm números de modo maiores que o modo DC ou qualquer um deles tem um modo de número maior que o modo DC pode ser determinado. Neste caso, quando tanto o modo de intrapredição A candidato quanto o modo de intrapredição B candidato têm um número de modo maior que o modo DC, se o modo de intrapredição A candidato e o modo de intrapredição B candidato têm um número de modo maior que o modo DC pode ser determinado com base em se uma diferença de número de modo entre o modo de intrapredição A candidato e o modo de intrapredição B candidato (por exemplo, se uma diferença entre os números de modo dos dois candidatos é maior que 1 e menor que 63). Candidatos de MPM derivados dentro de uma lista de MPM podem ser determinados de forma diferente dependendo se tal condição for satisfeita, conforme ilustrado na Tabela 12.
[0207] Além disso, com referência à Tabela 11 e à Tabela 12, os candidatos de MPM restantes são derivados com o uso de uma aritmética modular no modo de intrapredição A candidato e no modo de intrapredição B candidato. A aritmética modular 65 é usada na modalidade da Tabela 11, e a operação de aritmética modular 64 é usada na modalidade da Tabela 12. A aritmética modular pode ser aplicada de forma diferente dependendo de um algoritmo, considerando o desempenho de predição e a complexidade. Por exemplo, se a aritmética modular for usada, os modos com diretividade semelhante podem ser derivados como candidatos de MPM, considerando a diretividade do modo de intrapredição A candidato e/ou do modo de intrapredição B candidato ou os modos (por exemplo, modos não direcionais) cuja consistência não é mantida com base em um modo do modo de intrapredição A candidato e/ou do modo de intrapredição B candidato podem ser derivados como candidatos de MPM. Assim, o desempenho de uma intrapredição pode ser melhorado e a eficiência pode ser melhorada porque os candidatos de MPM com um ângulo significativo (ou seja, direção) podem ser derivados usando a aritmética modular.
[0208] Por exemplo, uma operação de adição e subtração de um modo de intrapredição usando a aritmética modular 64 pode ser aplicada como na Ta- bela 13. Por exemplo, se a aritmética modular 64 for aplicada a (modo de intrapredição + 1), (modo de intrapredição - 1), (modo de intrapredição + 2) e (modo de intrapredição - 2) descritos na Tabela 2 a Tabela 8, os resultados podem ser calculados como a Tabela 13.
[Tabela 13]
[Tabela 13]
- - Modo Intra -1 : (Modo intra +61)% 64 + 2
- - Modo Intra +1 : (Modo intra -1)% 64 + 2
- - Modo Intra -2 : (Modo intra +60)% 64 + 2
- - Modo Intra +2 : (Modo intra)% 64 + 2
[0209] Conforme descrito acima, um modo de intrapredição para um bloco atual pode ser derivado com base em uma lista de MPM incluindo candidatos de MPM derivados. As amostras preditas podem ser geradas realizando uma predição no bloco atual com base no modo de intrapredição derivado.
[0210] Neste caso, ao derivar o modo de intrapredição do bloco atual, quando o sinalizador de MPM (por exemplo, intra_luma_mpm_flag na Tabela 11 e na Tabela 12) é 1, conforme descrito acima, um candidato de MPM indicado por um índice de MPM (por exemplo, intra_luma_mpm_idx na Tabela 11 e na Tabela 12) entre os candidatos de MPM derivados podem ser derivados como o modo de intrapredição do bloco atual. Alternativamente, quando o sinalizador de MPM (por exemplo, intra_luma_mpm_flag na Tabela 11 e na Tabela 12) é 0, conforme descrito acima, um modo restante (por exemplo, intra_luma_mpm_remain-der na Tabela 11 e na Tabela 12) indicativo de um dos modos de intrapredição restantes, exceto os candidatos de MPM derivados podem ser derivados como o modo de intrapredição do bloco atual.
[0211] Conforme descrito acima, as informações de modo de intrapredição para um bloco atual podem ser codificadas e sinalizadas como um valor de um elemento de sintaxe. Neste caso, as informações de modo de intrapredição são as informações necessárias para a intrapredição do bloco atual e podem incluir o sinalizador de MPM mencionado acima, o índice de MPM, o modo restante, etc. Na codificação das informações de modo de intrapredição, vários processos de binarização podem ser aplicados com base em cada elemento de sintaxe.
[0212] Nesse caso, a binarização pode significar um conjunto de sequências binárias (strings bin) para todos os valores possíveis dos elementos de sintaxe. Além disso, o processo de binarização pode significar um procedimento para mapear exclusivamente todos os valores possíveis dos elementos de sintaxe para um conjunto de sequências de binário. O bin pode significar um valor binário de um dígito. Por exemplo, "0” ou "1” pode ser chamado de um único bin. A sequência de binário pode significar uma ordem binária configurada com binários e pode ser valores binários contínuos, como "01”.
[0213] Em uma modalidade, os elementos de sintaxe das informações de modo de intrapredição e binarização correspondente podem ser os mesmos que na Tabela 14.
[Tabela 14]
[Tabela 14]
[0214] Com referência à Tabela 14, o elemento de sintaxe “in-tra_luma_mpm_flag” que representa um sinalizador de MPM pode ser codifi-cado/decodificado pela aplicação de um processo de binarização de comprimento fixo (FL - “fixed-length”) ao elemento de sintaxe “intra_luma_mpm_flag”. O elemento de sintaxe “intra_luma_mpm_idx” que representa um índice de MPM pode ser codificado/decodificado aplicando um processo de binarização truncado rice (TF - “truncated rice”) ao elemento de sintaxe “intra_luma_mpm_idx”. O elemento de sintaxe “intra_luma_mpm_remainder” que representa um modo restante pode ser codificado/decodificado aplicando um processo de binarização binário truncado (TB) ao elemento de sintaxe “intra_luma_mpm_remainder”.
[0215] De acordo com uma modalidade deste documento, conforme descrito acima, os 35 modos de intrapredição existentes podem ser estendidos e, assim, os 67 modos de intrapredição podem ser usados. Neste caso, na codificação de informações de modo de intrapredição, um elemento de sintaxe que representa o modo restante pode exigir 6 bits. No entanto, o número de bits de um elemento de sintaxe que representa o modo restante pode ser reduzido de acordo com um método de codificação (ou seja, método de binarização). Ou seja, como na Tabela 12, ao codificar o elemento de sintaxe que representa o modo restante, o número de bits pode ser reduzido e a eficiência da codificação pode ser aumentada executando o processamento de binarização binária truncada (TB).
[0216] Em uma modalidade, um processo de binarização binário truncado (TB), como a Tabela 15, pode ser executado no elemento de sintaxe que representa o modo restante.
[Tabela 15]
9.5.3.6 Processo de binarização binária truncada
As entradas para esse processo são uma solicitação de binarização binária truncada (TB) e cMax.
As saídas desse processo é a binarização TB associando cada valor symbolVal com uma sequência de binário correspondente.
Os elementos de sintaxe codificados como tb(v) são codificados bina-riamente truncados. A faixa de valores possíveis para o elemento de sintaxe é determinada primeiro. A faixa deste elemento de sintaxe pode ser entre 0 e cMax, com cMax sendo maior ou igual a 1. symbolVal que é igual ao valor do elemento de sintaxe é dado por um processo especificado da seguinte forma:
n = cMax + 1
if (n > 256) {
thVal = 1 << 8
th = 8
while(thVal <= n) {
th++
thVal <<= 1
}
th- -
}
else {
th = Floor (Log2(n)) so that 2k <= n < 2k+1
}
val = 1 << th (9-9)
b = n - val
symbolVal = read_bits(th)
if(symbolVal >= val - b) {
symbolVal <<= 1
symbolVal += read_bits(1)
symbolVal -= val - b
}
[Tabela 15]
9.5.3.6 Processo de binarização binária truncada
As entradas para esse processo são uma solicitação de binarização binária truncada (TB) e cMax.
As saídas desse processo é a binarização TB associando cada valor symbolVal com uma sequência de binário correspondente.
Os elementos de sintaxe codificados como tb(v) são codificados bina-riamente truncados. A faixa de valores possíveis para o elemento de sintaxe é determinada primeiro. A faixa deste elemento de sintaxe pode ser entre 0 e cMax, com cMax sendo maior ou igual a 1. symbolVal que é igual ao valor do elemento de sintaxe é dado por um processo especificado da seguinte forma:
n = cMax + 1
if (n > 256) {
thVal = 1 << 8
th = 8
while(thVal <= n) {
th++
thVal <<= 1
}
th- -
}
else {
th = Floor (Log2(n)) so that 2k <= n < 2k+1
}
val = 1 << th (9-9)
b = n - val
symbolVal = read_bits(th)
if(symbolVal >= val - b) {
symbolVal <<= 1
symbolVal += read_bits(1)
symbolVal -= val - b
}
[0217] Com referência à Tabela 15, quando o elemento de sintaxe (in- tra_luma_mpm_remainder) que representa um modo restante é inserido, um valor TB-binarizado do elemento de sintaxe (intra_luma_mpm_remainder) pode ser emitido com base na codificação binária truncada (TB). Primeiro, a faixa de valores possíveis do elemento de sintaxe (intra_luma_mpm_remainder) pode ser determinada. O intervalo do elemento de sintaxe (intra_luma_mpm_remainder) pode ser entre 0 e cMax. cMax pode indicar um valor máximo do elemento de sintaxe (intra_luma_mpm_remainder), e pode ter um valor maior ou igual a 1. Um valor TB binarizado (string bin TB) para o valor do elemento de sintaxe (in-tra_luma_mpm_remainder) pode ser derivado com base no algoritmo da Tabela 15. Por exemplo, na Tabela 14, no caso do elemento de sintaxe (in-tra_luma_mpm_remainder) representando um modo restante, cMax é 60. Consequentemente, o elemento de sintaxe (intra_luma_mpm_remainder) pode ser representado usando 6 bits. No entanto, se a codificação de binarização for realizada em um valor do elemento de sintaxe (intra_luma_mpm_remainder) que representa um modo restante com base na codificação TB, como o algoritmo da Tabela 15, a codificação de binarização pode ser realizada com o uso do número de bits menores que 6 bits com base no valor do elemento de sintaxe (in-tra_luma_mpm_remainder). Por exemplo, o elemento de sintaxe (in-tra_luma_mpm_remainder) que representa um modo restante pode ser usado para gerar bits de 1 bit a 5 bits com base em um valor do elemento de sintaxe e pode ser codificado pela codificação TB.
[0218] A FIG. 16 é um fluxograma que ilustra esquematicamente um método de codificação que pode ser realizado pelo aparelho de codificação de acordo com uma modalidade deste documento.
[0219] O método divulgado na FIG. 16 pode ser realizado pelo aparelho de codificação 200 divulgado na FIG. 2. Especificamente, as etapas S1600 ~ S1640 na FIG. 16 podem ser realizadas no preditor 220 e no intrapreditor 222 divulgado na FIG. 2. A Etapa S1650 na FIG. 16 pode ser realizada pelo codificador de entropia 240 divulgado na FIG. 2. Além disso, o método divulgado na FIG. 16 pode incluir as modalidades divulgadas neste relatório descritivo. Consequentemente, na FIG. 16, uma descrição detalhada dos conteúdos que se sobrepõem às modalidades acima mencionadas é omitida ou os conteúdos são descritos resumidamente.
[0220] Com referência às FIG. 16, o aparelho de codificação pode derivar um primeiro modo de intrapredição candidato com base em um primeiro bloco vizinho localizado no lado esquerdo de um bloco atual (S1600).
[0221] Neste caso, os blocos vizinhos localizados adjacentes ao bloco atual podem incluir o bloco vizinho A, o bloco vizinho B, o bloco vizinho C, o bloco vizinho D, o bloco vizinho E, o bloco vizinho F e/ou o bloco vizinho G ilustrados na FIG. 11. Neste caso, o primeiro bloco vizinho é um bloco vizinho localizado no lado esquerdo do bloco atual e pode ser o bloco vizinho D ilustrado na FIG. 11, por exemplo. Ou seja, o bloco vizinho D pode indicar um bloco vizinho à esquerda localizado no lado inferior entre os blocos vizinhos que são vizinhos ao limite à esquerda do bloco atual.
[0222] Em uma modalidade, se o primeiro bloco vizinho estiver disponível e uma intrapredição tiver sido aplicada ao primeiro bloco vizinho, o aparelho de codificação pode derivar um modo de intrapredição do primeiro bloco vizinho como o primeiro modo de intrapredição candidato. Alternativamente, se o primeiro bloco vizinho não estiver disponível ou uma intrapredição não for aplicada ao primeiro bloco vizinho, o aparelho de codificação pode derivar um modo de intrapredição de modo planar como o primeiro modo de intrapredição candidato.
[0223] O aparelho de codificação pode derivar um segundo modo de intrapredição candidato com base em um segundo bloco vizinho localizado no lado superior do bloco atual (S1610).
[0224] Neste caso, o segundo bloco vizinho é um bloco vizinho localizado no lado superior do bloco atual e pode ser o bloco vizinho B ilustrado na FIG. 11, por exemplo. Ou seja, o bloco vizinho B pode indicar um bloco vizinho do lado superior localizado no lado à extrema direita entre os blocos vizinhos que fazem parte do limite superior do bloco atual. Por exemplo, se o tamanho de um bloco atual é WxH e um componente x e um componente y na posição de amostra de topo à esquerda do bloco atual são xN e yN, o primeiro bloco vizinho pode ser um bloco incluindo uma amostra nas coordenadas (xN-1, H+yN-1) e o segundo bloco vizinho pode ser um bloco incluindo uma amostra nas coordenadas (W+xN-1, yN-1).
[0225] Em uma modalidade, se um segundo bloco vizinho estiver disponível, uma intrapredição for aplicada ao segundo bloco vizinho e o segundo bloco vizinho for incluído em uma CTU atual, o aparelho de codificação pode derivar um modo de intrapredição do segundo bloco vizinho como o segundo modo de intrapredição candidato. Alternativamente, se um segundo bloco vizinho não estiver disponível ou uma intrapredição não for aplicada ao segundo bloco vizinho ou o segundo bloco vizinho não estiver incluído em uma CTU atual, o aparelho de codificação pode derivar um modo de intrapredição de modo planar como o segundo modo de intrapredição candidato.
[0226] O aparelho de codificação pode configurar uma lista de modo mais provável (MPM) para o bloco atual com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato (S1620).
[0227] Isto é, o aparelho de codificação pode derivar candidatos de MPM incluindo pelo menos um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato e pode configurar uma lista de MPM com base nos candidatos de MPM. Neste caso, as várias modalidades mencionadas acima podem ser aplicadas a um processo de derivar os candidatos de MPM e configurar a lista de MPM. O processo foi descrito acima com referência às FIGS. 12 a 15 e Tabela 1 a Tabela 13. De acordo com as modalidades mencionadas anteriormente, os candidatos de MPM podem ser derivados para configurar a lista de MPM dependendo se as condições predeterminadas são satisfeitas com base no primeiro modo de intrapredição candidato derivado do primeiro bloco vizinho e do segundo modo de intrapredição candidato derivado do segundo bloco vizinho.
[0228] Neste caso, pelo menos um dos candidatos de MPM incluídos na lista de MPM pode ser derivado aplicando uma operação aritmética modular ao primeiro modo de intrapredição candidato ou ao segundo modo de intrapredição candidato. Neste caso, em uma implementação da lista de MPM, um algoritmo pode ser implementado de modo que os candidatos de MPM com ângulos significativos (ou seja, direções) possam ser configurados considerando um número total de modos de intrapredição, a direção de uma intrapredição, desempenho de predição, complexidade, etc. De acordo com uma modalidade, como na Tabela 9 ou na Tabela 13, os candidatos de MPM podem ser derivados aplicando a operação aritmética modular 64 ou a operação aritmética modular 65 ao primeiro modo de intrapredição candidato ou ao segundo modo de intrapredição candidato.
[0229] Em uma modalidade, um modo de intrapredição de um dos candidatos de MPM pode ser derivado com base em um resultado, calculado pelo cálculo de um primeiro valor adicionando 61, 60, 0 ou -1 a um índice de modo maior de um índice de modo (número de modo) do primeiro modo de intrapredição candidato e um índice de modo (número de modo) do segundo modo de intrapredição candidato, calculando um segundo valor aplicando a operação aritmética modular 64 ao primeiro valor, e adicionando 2 ao segundo valor.
[0230] Por exemplo, ao derivar os candidatos de MPM, se o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato são o mesmo modo de intrapredição, o aparelho de codificação pode derivar os candidatos de MPM determinando se um índice de modo do primeiro modo de intrapredição candidato tem um índice de modo maior que um modo de intrapredição DC. Neste caso, se o primeiro modo de intrapredição candidato tem um índice de modo maior que um modo de intrapredição DC, os candidatos de MPM podem incluir um modo de intrapredição derivado com base em um resultado calculado aplicando a operação aritmética modular 64 a (o índice de modo do primeiro modo de intrapredição candidato + 61) e adicionando 2, um modo de intrapredição derivado com base em um resultado calculado aplicando a operação aritmética modular 64 a (o índice de modo do primeiro modo de intrapredição candidato - 1) e adicionando 2, e um modo de intrapredição derivado com base em um resultado obtido aplicando a operação aritmética modular 64 a (o índice de modo do primeiro modo de intrapredição candidato + 60) e adicionando 2.
[0231] Alternativamente, por exemplo, ao derivar os candidatos de MPM, se o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato não forem o mesmo modo de intrapredição, o aparelho de codificação pode derivar os candidatos de MPM determinando se qualquer um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tem um índice de modo maior que um modo de intrapredição DC. Neste caso, quando qualquer um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tem um índice de modo maior que o modo de intrapredição DC, os candidatos de MPM podem incluir um modo de intrapredição derivado com base em um resultado obtido pela aplicação da operação aritmética modular 64 a (um índice de modo maior de um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato + 61) e adicionar 2, um modo de intrapredição derivado com base em um resultado obtido aplicando a operação aritmética modular 64 a (um índice de modo maior de um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato - 1) e adicionando 2, e um modo de intrapredição derivado com base em um resultado obtido aplicando a operação aritmética modular 64 a (um índice de modo maior de um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato + 60) e adicionando 2.
[0232] Alternativamente, por exemplo, ao derivar os candidatos de MPM, se o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato não forem o mesmo modo de intrapredição, o aparelho de codificação pode derivar os candidatos de MPM determinando se cada um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tem um índice de modo maior que um modo de intrapredição DC. Neste caso, quando cada um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tem um índice de modo maior que o modo de intrapredição DC, os candidatos de MPM podem incluir um modo de intrapredição derivado com base em um resultado obtido pela aplicação da operação aritmética modular 64 a (um índice de modo maior do índice de modo do primeiro modo de intrapredição candidato e o índice de modo do segundo modo de intrapredição candidato + 61) e adicionando 2 ou um modo de intrapredição derivado com base em um resultado obtido pela aplicação da operação aritmética modular 64 a (um índice de modo maior do índice de modo do primeiro modo de intrapredição candidato e o índice de modo do segundo modo de intrapredição candidato - 1) e adicionando 2, com base em uma diferença entre o índice de modo do primeiro modo de intrapredição candidato e o índice de modo do segundo modo de intrapredição candidato.
[0233] Por exemplo, se cada um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tem um índice de modo maior que um modo de intrapredição DC e uma diferença entre o primeiro índice de modo e o segundo índice de modo for 62, os candidatos de MPM podem incluem um modo de intrapredição derivado com base em um resultado obtido aplicando a operação aritmética modular 64 a (o primeiro índice de modo + 61) e adicionando 2.
[0234] Por outro exemplo, se cada um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tiver um índice de modo maior que um modo de intrapredição DC e uma diferença entre o primeiro índice de modo e o segundo índice de modo for 2, os candidatos de MPM podem incluir um modo de intrapredição derivado com base em um resultado obtido aplicando a operação aritmética modular 64 a (o primeiro índice de modo - 1) e adicionando 2.
[0235] Neste caso, o primeiro índice de modo pode indicar um índice de modo maior entre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato. O segundo índice de modo pode indicar um índice de modo menor entre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato.
[0236] O aparelho de codificação pode incluir os candidatos de MPM, derivados conforme descrito acima, na lista de MPM. Neste caso, cada um dos candidatos de MPM pode ser indexado sequencialmente dentro da lista e pode ser indicado como um valor de índice da lista de MPM. Ou seja, o aparelho de codificação pode indicar qualquer um dos candidatos de MPM dentro da lista de MPM sinalizando o valor de índice.
[0237] O aparelho de codificação pode determinar um modo de intrapredição do bloco atual (S1630).
[0238] Em uma modalidade, o aparelho de codificação pode derivar um modo de intrapredição tendo um custo de distorção de taxa ideal (RD - "rate-distortion”) realizando vários modos de intrapredição no bloco atual e pode determinar o modo de intrapredição como um modo de intrapredição do bloco atual. Neste caso, o aparelho de codificação pode derivar o melhor modo de intrapredição do bloco atual com base em modos de intrapredição, incluindo 2 modos de intrapredição não direcionais e 65 modos de intrapredição direcional. Os 67 modos de intrapredição são iguais aos descritos acima com referência à FIG. 10.
[0239] Além disso, o aparelho de codificação pode gerar informações relacionadas ao modo de intrapredição do bloco atual. As informações relacionadas ao modo de intrapredição são informações para indicar o modo de intrapredição do bloco atual e podem incluir informações de sinalizador de MPM, informações de índice de MPM, informações de modo restantes, etc.
[0240] Em uma modalidade, o aparelho de codificação pode determinar se o modo de intrapredição determinado do bloco atual está incluído nos candidatos de MPM dentro da lista de MPM e pode gerar informações de sinalizador de MPM com base em um resultado da determinação. Por exemplo, se o modo de intrapredição do bloco atual estiver incluído nos candidatos de MPM dentro da lista de MPM, o aparelho de codificação pode definir as informações de sinalizador de MPM para 1. Alternativamente, se o modo de intrapredição do bloco atual não estiver incluído nos candidatos de MPM dentro da lista de MPM, o aparelho de codificação pode definir a informação de sinalizador de MPM para 0.
[0241] Além disso, se o modo de intrapredição do bloco atual estiver incluído nos candidatos de MPM dentro da lista de MPM, o aparelho de codificação pode gerar informações de índice de MPM para indicar o modo de intrapredição do bloco atual entre os candidatos de MPM. Por exemplo, se a lista de MPM estiver configurada com k (por exemplo, 6) candidatos de MPM, as informações de índice de MPM podem indicar um valor de índice correspondente ao modo de intrapredição do bloco atual, entre 0 ~ k-1 (por exemplo, 0 ~ 5) valores de índice.
[0242] Se o modo de intrapredição do bloco atual não estiver incluído nos candidatos de MPM dentro da lista de MPM, o aparelho de codificação pode gerar informações de modo restantes para indicar o modo de intrapredição do bloco atual entre os modos de intrapredição restantes, exceto os candidatos de MPM. Por exemplo, conforme descrito acima, se os 67 modos de intrapredição são usados e a lista de MPM é configurada para incluir k (por exemplo, 6) candidatos de MPM, os modos de intrapredição restantes podem incluir 67-k modos (por exemplo, 61) obtidos subtraindo o número candidatos de MPM de um número total de modos de intrapredição. Assim, as informações de modo restantes podem indicar um valor de índice correspondente ao modo de intrapredição do bloco atual entre 0 ~ 67-k-1 (por exemplo, 0 ~ 60) valores de índice.
[0243] O aparelho de codificação pode gerar amostras de predição para o bloco atual realizando uma intrapredição com base no modo de intrapredição determinado do bloco atual (S1640).
[0244] Em uma modalidade, o aparelho de codificação pode derivar pelo menos uma das amostras vizinhas de um bloco atual com base em um modo de intrapredição e pode gerar amostras de predição com base na amostra vizinha. Neste caso, as amostras vizinhas podem incluir a amostra vizinha de canto de topo à esquerda, amostras vizinhas do lado superior e amostras vizinhas do lado esquerdo do bloco atual. Por exemplo, se o tamanho de um bloco atual é WxH e um componente x e um componente y na posição da amostra de topo à esquerda do bloco atual são xN e yN, as amostras vizinhas do lado esquerdo podem ser p[xN-1][yN] a p[xN-1][2H+yN-1], uma amostra vizinha do canto de topo à esquerda pode ser p[xN-1][yN-1], e as amostras vizinhas do lado superior podem ser p[xN][yN-1] a p[2W+xN-1][yN-1].
[0245] O aparelho de codificação pode codificar informações de imagem, incluindo as informações relacionadas ao modo de intrapredição do bloco atual (S1650).
[0246] Ou seja, o aparelho de codificação pode gerar informações relacionadas ao modo intrapredição, incluindo pelo menos uma das informações de sinalizador de MPM acima mencionadas, informações de índice de MPM e informações de modo restantes e pode codificar as informações relacionadas ao modo intrapredição.
[0247] Além disso, embora não ilustrado, o aparelho de codificação pode derivar amostras residuais para o bloco atual com base nas amostras originais e amostras de predição para o bloco atual e pode gerar informações relacionadas a um residual para o bloco atual com base em amostras residuais. Além disso, o aparelho de codificação pode codificar informações de imagem, incluindo as informações relacionadas ao residual, e pode enviar as informações de imagem em uma forma de fluxo de bits.
[0248] O fluxo de bits pode ser transmitido para o aparelho de decodificação através de uma rede ou através de um meio de armazenamento (digital). Neste caso, a rede pode incluir uma rede de difusão e/ou uma rede de comunicação. O meio de armazenamento digital pode incluir vários meios de armazenamento, como um USB, um SD, um CD, um DVD, Blu-ray, um HDD e um SSD.
[0249] O processo de derivar uma amostra residual para um bloco atual pode ser realizado pelo subtrator 231 do aparelho de codificação 200 divulgado na FIG. 2. O processo de geração de informações relacionadas a um resíduo pode ser realizado pelo transformador 232 do aparelho de codificação 200 divulgado na FIG. 2. O processo de codificação de informações de imagem, incluindo as informações relacionadas a um resíduo, pode ser realizado pelo codificador de entropia 240 do aparelho de codificação 200 divulgado na FIG. 2.
[0250] A FIG. 17 é um fluxograma que ilustra esquematicamente um método de decodificação que pode ser realizado pelo aparelho de decodificação de acordo com uma modalidade deste documento.
[0251] O método divulgado na FIG. 17 pode ser realizado pelo aparelho de decodificação 300 divulgado na FIG. 3. Especificamente, as etapas S1700 ~ S1740 na FIG. 17 pode ser realizado pelo preditor 330 e pelo intrapreditor 331 divulgado na FIG. 3. A Etapa S1750 na FIG. 17 pode ser realizada pelo adicionador 340 divulgado na FIG. 3. Além disso, na FIG. 17, a etapa S1730 pode ser realizada pelo decodificador de entropia 310 divulgado na FIG. 3. Além disso, o método divulgado na FIG. 17 pode incluir as modalidades descritas neste relatório descritivo. Consequentemente, na FIG. 17, uma descrição detalhada dos conteúdos que se sobrepõem às modalidades acima mencionadas é omitida ou os conteúdos são descritos resumidamente.
[0252] Com referência às FIG. 17, o aparelho de decodificação pode derivar um primeiro modo de intrapredição candidato com base em um primeiro bloco vizinho localizado no lado esquerdo de um bloco atual (S1700).
[0253] Neste caso, os blocos vizinhos localizados adjacentes ao bloco atual podem incluir o bloco vizinho A, o bloco vizinho B, o bloco vizinho C, o bloco vizinho D, o bloco vizinho E, o bloco vizinho F e/ou o bloco vizinho G ilustrados na FIG. 11. Neste caso, o primeiro bloco vizinho é um bloco vizinho localizado no lado esquerdo do bloco atual e pode ser o bloco vizinho D ilustrado na FIG. 11, por exemplo. Ou seja, o bloco vizinho D pode indicar um bloco vizinho à esquerda localizado no lado inferior entre os blocos vizinhos à esquerda que são vizinhos ao limite à esquerda do bloco atual.
[0254] Em uma modalidade, se o primeiro bloco vizinho estiver disponível e uma intrapredição tiver sido aplicada ao primeiro bloco vizinho, o aparelho de decodificação pode derivar um modo de intrapredição do primeiro bloco vizinho como o primeiro modo de intrapredição candidato. Alternativamente, se o primeiro bloco vizinho não estiver disponível ou uma intrapredição não for aplicada ao primeiro bloco vizinho, o aparelho de decodificação pode derivar um modo de intrapredição de modo planar como o primeiro modo de intrapredição candidato.
[0255] O aparelho de decodificação pode derivar um segundo modo de intrapredição candidato com base em um segundo bloco vizinho localizado no lado superior do bloco atual (S1710).
[0256] Neste caso, o segundo bloco vizinho é um bloco vizinho localizado no lado superior do bloco atual e pode ser o bloco vizinho B ilustrado na FIG. 11, por exemplo. Ou seja, o bloco vizinho B pode indicar um bloco vizinho do lado superior localizado no lado à extrema direita entre os blocos vizinhos que fazem parte do limite superior do bloco atual. Por exemplo, se o tamanho de um bloco atual for WxH e um componente x e um componente y na posição de amostra de topo à esquerda do bloco atual são xN e yN, o primeiro bloco vizinho pode ser um bloco incluindo uma amostra nas coordenadas (xN-1, H+yN-1) e o segundo bloco vizinho pode ser um bloco incluindo uma amostra nas coordenadas (W+xN-1, yN-1).
[0257] Em uma modalidade, se o segundo bloco vizinho estiver disponível, uma intrapredição é aplicada ao segundo bloco vizinho e o segundo bloco vizinho é incluído em uma CTU atual, o aparelho de decodificação pode derivar um modo de intrapredição do segundo bloco vizinho como o segundo modo de intrapredição candidato. Alternativamente, se um segundo bloco vizinho não estiver disponível ou uma intrapredição não for aplicada ao segundo bloco vizinho ou o segundo bloco vizinho não estiver incluído em uma CTU atual, o aparelho de decodificação pode derivar um modo de intrapredição de modo planar como o segundo modo de intrapredição candidato.
[0258] O aparelho de decodificação pode configurar uma lista de modo mais provável (MPM) para o bloco atual com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato (S1720).
[0259] Ou seja, o aparelho de decodificação pode derivar candidatos de MPM incluindo pelo menos um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato e pode configurar a lista de MPM com base nos candidatos de MPM. Neste caso, as várias modalidades mencionadas acima podem ser aplicadas ao processo de configuração da lista de MPM derivando os candidatos de MPM. Isto foi descrito acima com referência às FIGS. 12 a 15 e Tabela 1 a Tabela 13. De acordo com as modalidades acima mencionadas, a lista de MPM pode ser configurada derivando os candidatos de MPM dependendo se as condições predeterminadas são satisfeitas com base no primeiro modo de intrapredição candidato derivado do primeiro bloco vizinho e do segundo modo de intrapredição candidato derivado do segundo bloco vizinho.
[0260] Neste caso, pelo menos um dos candidatos de MPM incluídos na lista de MPM pode ser derivado aplicando uma operação aritmética modular ao primeiro modo de intrapredição candidato ou ao segundo modo de intrapredição candidato. Neste caso, na implementação da lista de MPM, um algoritmo pode ser implementado de modo que os candidatos de MPM com ângulos significativos (ou seja, direções) sejam configurados considerando um número total de modos de intrapredição, a direção de uma intrapredição, desempenho de predição, complexidade, etc. Em algumas modalidades, como na Tabela 9 ou na Tabela 13, os candidatos de MPM podem ser derivados aplicando a operação aritmética modular 64 ou a operação aritmética modular 65 ao primeiro modo de intrapredição candidato ou ao segundo modo de intrapredição candidato modo.
[0261] Em uma modalidade, um modo de intrapredição de um dos candidatos de MPM pode ser derivado com base em um resultado, calculado pelo cálculo de um primeiro valor adicionando 61, 60, 0 ou -1 a um índice de modo maior de um índice de modo (número de modo) do primeiro modo de intrapredição candidato e um índice de modo (número de modo) do segundo modo de intrapredição candidato, calculando um segundo valor aplicando a operação aritmética modular 64 ao primeiro valor, e adicionando 2 ao segundo valor.
[0262] Por exemplo, ao derivar os candidatos de MPM, se o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato são o mesmo modo de intrapredição, o aparelho de decodificação pode derivar os candidatos de MPM determinando se um índice de modo do primeiro modo de intrapredição candidato tem um índice de modo maior que um modo de intrapredição DC. Neste caso, se o primeiro modo de intrapredição candidato tem um índice de modo maior que um modo de intrapredição DC, os candidatos de MPM podem incluir um modo de intrapredição derivado com base em um resultado calculado aplicando a operação aritmética modular 64 a (o índice de modo do primeiro modo de intrapredição candidato + 61) e adicionando 2, um modo de intrapredição derivado com base em um resultado calculado aplicando a operação aritmética modular 64 a (o índice de modo do primeiro modo de intrapredição candidato - 1) e adicionando 2, e um modo de intrapredição derivado com base em um resultado obtido aplicando a operação aritmética modular 64 a (o índice de modo do primeiro modo de intrapredição candidato + 60) e adicionando 2.
[0263] Alternativamente, por exemplo, ao derivar os candidatos de MPM, se o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato não forem o mesmo modo de intrapredição, o aparelho de decodificação pode derivar os candidatos de MPM determinando se qualquer um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tem um índice de modo maior que um modo de intrapredição DC. Neste caso, quando qualquer um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tem um índice de modo maior que o modo de intrapredição DC, os candidatos de MPM podem incluir um modo de intrapredição derivado com base em um resultado obtido pela aplicação da operação aritmética modular 64 a (um índice de modo maior de um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato + 61) e adicionar 2, um modo de intrapredição derivado com base em um resultado obtido aplicando a operação aritmética modular 64 a (um índice de modo maior de um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato - 1) e adicionando 2, e um modo de intrapredição derivado com base em um resultado obtido aplicando a operação aritmética modular 64 a (um índice de modo maior de um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato + 60) e adicionando 2.
[0264] Alternativamente, por exemplo, ao derivar os candidatos de MPM, se o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato não forem o mesmo modo de intrapredição, o aparelho de decodificação pode derivar os candidatos de MPM determinando cada um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tem um índice de modo maior que um modo de intrapredição DC. Neste caso, quando cada um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tem um índice de modo maior que o modo de intrapredição DC, os candidatos de MPM podem incluir um modo de intrapredição derivado com base em um resultado obtido pela aplicação da operação aritmética modular 64 a (um índice de modo maior do índice de modo do primeiro modo de intrapredição candidato e o índice de modo do segundo modo de intrapredição candidato + 61) e adicionando 2 ou um modo de intrapredição derivado com base em um resultado obtido pela aplicação da operação aritmética modular 64 a (um índice de modo maior do índice de modo do primeiro modo de intrapredição candidato e o índice de modo do segundo modo de intrapredição candidato - 1) e adicionando 2, com base em uma diferença entre o índice de modo do primeiro modo de intrapredição candidato e o índice de modo do segundo modo de intrapredição candidato.
[0265] Por exemplo, se cada um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tem um índice de modo maior que um modo de intrapredição DC e uma diferença entre o primeiro índice de modo e o segundo índice de modo for 62, os candidatos de MPM podem incluem um modo de intrapredição derivado com base em um resultado obtido aplicando a operação aritmética modular 64 a (o primeiro índice de modo + 61) e adicionando 2.
[0266] Por outro exemplo, se cada um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato tiver um índice de modo maior que um modo de intrapredição DC e uma diferença entre o primeiro índice de modo e o segundo índice de modo for 2, os candidatos de MPM podem incluir um modo de intrapredição derivado com base em um resultado obtido aplicando a operação aritmética modular 64 a (o primeiro índice de modo - 1) e adicionando 2.
[0267] Neste caso, o primeiro índice de modo pode indicar um índice de modo maior entre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato. O segundo índice de modo pode indicar um índice de modo menor entre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato.
[0268] O aparelho de decodificação pode incluir os candidatos de MPM, derivados conforme descrito acima, na lista de MPM. Neste caso, cada um dos candidatos de MPM pode ser indexado sequencialmente dentro da lista e pode ser indicado como um valor de índice da lista de MPM. Ou seja, o aparelho de decodificação pode determinar qual dos candidatos de MPM dentro da lista de MPM é indicado com base em um valor de índice sinalizado pelo aparelho de codificação.
[0269] O aparelho de decodificação pode derivar um modo de intrapredição do bloco atual com base na lista de MPM (S1730).
[0270] Em uma modalidade, o aparelho de decodificação pode obter informações relacionadas ao modo de intrapredição do bloco atual de um fluxo de bits. As informações relacionadas ao modo de intrapredição são informações para indicar o modo de intrapredição do bloco atual e podem incluir informações de sinalizador de MPM, informações de índice de MPM, informações de modo restantes, etc.
[0271] Em primeiro lugar, o aparelho de decodificação pode obter informações de sinalizador de MPM indicando se o modo de intrapredição do bloco atual está incluído nos candidatos de MPM dentro da lista de MPM. Além disso, o aparelho de decodificação pode obter informações de índice de MPM ou informações de modo restantes com base nas informações de sinalizador de MPM.
[0272] Por exemplo, quando a informação do sinalizador de MPM indica 1, o aparelho de decodificação pode determinar que o modo de intrapredição do bloco atual está incluído nos candidatos de MPM dentro da lista de MPM. Neste caso, o aparelho de decodificação pode obter informações de índice de MPM para indicar o modo de intrapredição do bloco atual entre os candidatos de MPM. O aparelho de decodificação pode derivar, como modo de intrapredição do bloco atual, um candidato de MPM indicado pela informação de índice de MPM dentro da lista de MPM.
[0273] Quando a informação do sinalizador de MPM indica 0, o aparelho de decodificação pode determinar que o modo de intrapredição do bloco atual não está incluído nos candidatos de MPM dentro da lista de MPM. Neste caso, o aparelho de decodificação pode obter informações de modo restantes para indicar o modo de intrapredição do bloco atual entre os modos de intrapredição restantes, exceto os candidatos de MPM. O aparelho de decodificação pode derivar, como modo de intrapredição do bloco atual, um modo de intrapredição indicado pelas informações de modo restantes.
[0274] O aparelho de decodificação pode gerar amostras de predição para o bloco atual realizando uma intrapredição no bloco atual com base no modo de intrapredição derivado (S1740).
[0275] Em uma modalidade, o aparelho de decodificação pode derivar pelo menos uma das amostras vizinhas de um bloco atual com base em um modo de intrapredição e pode gerar amostras de predição com base na amostra vizinha. Neste caso, as amostras vizinhas podem incluir a amostra vizinha de canto de topo à esquerda, amostras vizinhas do lado superior e amostras vizinhas do lado esquerdo do bloco atual. Por exemplo, se o tamanho de um bloco atual é WxH e um componente x e um componente y na posição da amostra de topo à esquerda do bloco atual são xN e yN, as amostras vizinhas do lado esquerdo podem ser p[xN-1][yN] a p[xN-1][2H+yN-1], uma amostra vizinha do canto de topo à esquerda pode ser p[xN-1][yN-1], e as amostras vizinhas do lado superior podem ser p[xN][yN-1] a p[2W+xN-1][yN-1].
[0276] O aparelho de decodificação pode gerar uma gravura reconstruída para o bloco atual com base nas amostras de predição (S1750).
[0277] Em uma modalidade, o aparelho de decodificação pode usar as amostras de predição diretamente como amostras reconstruídas com base em um modo de predição ou pode gerar amostras reconstruídas adicionando amostras residuais às amostras de predição.
[0278] Se uma amostra residual para o bloco atual estiver presente, o aparelho de decodificação pode receber informações relacionadas a um resíduo para o bloco atual. As informações relacionadas ao residual podem incluir um coeficiente de transformação relacionado a amostras residuais. O aparelho de decodificação pode derivar amostras residuais (ou matriz de amostra residual) para o bloco atual com base nas informações residuais. O aparelho de decodificação pode gerar amostras reconstruídas com base nas amostras de predição e nas amostras residuais e pode derivar um bloco reconstruído ou gravura reconstruída com base nas amostras reconstruídas. Depois disso, o aparelho de decodificação pode aplicar um procedimento de filtragem in-loop, como filtragem de desbloqueio e/ou um procedimento SAO, a gravura reconstruída a fim de melhorar a qualidade da gravura subjetivo/objetivo, como descrito acima.
[0279] Nas modalidades mencionadas acima, embora os métodos tenham sido descritos com base nos fluxogramas na forma de uma série de etapas ou unidades, as modalidades deste documento não estão limitadas à ordem das etapas e algumas das etapas podem ser realizadas em uma ordem diferente daquela de outras etapas ou pode ser realizada simultaneamente a outras etapas. Além disso, os versados na técnica entenderão que as etapas mostradas no fluxograma não são exclusivas e as etapas podem incluir etapas adicionais ou que uma ou mais etapas no fluxograma podem ser excluídas sem afetar o escopo dos direitos deste documento.
[0280] O método acima mencionado de acordo com este documento pode ser implementado em uma forma de software, e o aparelho de codificação e/ou o aparelho de decodificação de acordo com este documento pode ser incluído em um aparelho para realizar processamento de imagem, por exemplo, TV, um computador, um smartphone, um decodificador ou um dispositivo de exibição.
[0281] Neste documento, quando as modalidades são implementadas em uma forma de software, o método acima mencionado é implementado como um módulo (processo, função, etc.) para executar a função acima mencionada. O módulo pode ser armazenado na memória e executado pelo processador. A memória pode ser colocada dentro ou fora do processador e conectada ao processador por vários meios bem conhecidos. O processador pode incluir circuitos integrados específicos para aplicativos (ASICs - “application-specific integrated circuits”), outros chipsets, circuitos lógicos e/ou dispositivos de processamento de dados. A memória pode incluir memória somente de leitura (ROM - “read-only memory”), memória de acesso aleatório (RAM - “random access memory’), memória flash, cartões de memória, mídia de armazenamento e/ou outros dispositivos de armazenamento. Ou seja, as modalidades descritas neste documento podem ser implementadas e realizadas em um processador, um microprocessador, um controlador ou um chip. Por exemplo, as unidades de função ilustradas nos desenhos podem ser implementadas e realizadas em um computador, um processador, um microprocessador, um controlador ou um chip. Nesse caso, as informações (por exemplo, informações sobre instruções) ou um algoritmo para tal implementação pode ser armazenado em um meio de armazenamento digital.
[0282] Além disso, o aparelho de decodificação e o aparelho de codificação ao qual este documento é aplicado podem ser incluídos em um dispositivo de transmissão e recepção de transmissão de difusão, um terminal de comunicação móvel, um dispositivo de vídeo de home cinema, um dispositivo de vídeo de cinema digital, uma câmera para monitoramento, um dispositivo de diálogo de vídeo, um dispositivo de comunicação em tempo real, como comunicação de vídeo, um dispositivo de transmissão móvel, um meio de armazenamento, uma filmadora, um dispositivo de prestação de serviço de vídeo sob demanda (VoD -“video on-demand”), um dispositivo de vídeo over the top (OTT - “over the top”), um dispositivo de prestação de serviço de transmissão de Internet, um dispositivo de vídeo tridimensional (3D), um dispositivo de realidade virtual (VR - “virtual reality”), um dispositivo de realidade aumentada (AR - “augmented reality”), um dispositivo de telefonia de vídeo, terminal de meio de transporte (por exemplo, um veículo (incluindo veículo autônomo), um terminal de aeronave e um terminal de embarcação) e um dispositivo de vídeo médico, e pode ser usado para processar um sinal de vídeo ou um sinal de dados. Por exemplo, o dispositivo de vídeo over the top (OTT) pode incluir um console de jogo, um Blu-ray player, TV com acesso à Internet, um sistema de home theater, um smartphone, um tablet PC e um gravador de vídeo digital (DVR - “digital video recorder”).
[0283] Além disso, o método de processamento ao qual este documento é aplicado pode ser produzido na forma de um programa executado por um computador e pode ser armazenado em um meio de gravação legível por computador. Os dados de multimídia com uma estrutura de dados de acordo com este documento também podem ser armazenados em um meio de gravação legível por computador. O meio de gravação legível por computador inclui todos os tipos de dispositivos de armazenamento nos quais os dados legíveis por computador são armazenados. O meio de gravação legível por computador pode incluir Blu-ray disk (BD), um barramento serial universal (USB - "universal serial bus”), um ROM, um PROM, um EPROM, um EEPROM, um RAM, um CD-ROM, uma fita magnética, um disquete, e um dispositivo de armazenamento óptico de dados, por exemplo. Além disso, o meio de gravação legível por computador inclui mídia implementada na forma de portadores (por exemplo, transmissão através da Internet). Além disso, um fluxo de bits gerado com o uso de um método de codificação pode ser armazenado em um meio de gravação legível por computador ou pode ser transmitido por redes de comunicação com e sem fio.
[0284] Além disso, uma modalidade deste documento pode ser implementada como um produto de programa de computador usando código de programa. O código do programa pode ser executado por um computador de acordo com uma modalidade deste documento. O código do programa pode ser armazenado em uma portadora legível por um computador.
[0285] A FIG. 18 ilustra um exemplo de um sistema de transmissão de conteúdo ao qual as modalidades divulgadas neste documento podem ser aplicadas.
[0286] Com referência às FIG. 18, o sistema de transmissão de conteúdo ao qual a(s) modalidade(s) do presente documento é aplicada pode incluir amplamente um servidor de codificação, um servidor de transmissão, um servidor da web, um armazenamento de mídia, um dispositivo de usuário e um dispositivo de entrada de multimídia.
[0287] O servidor de codificação compacta a entrada de conteúdo dos dispositivos de entrada de multimídia, como um smartphone, uma câmera, uma filmadora, etc. em dados digitais para gerar um fluxo de bits e transmitir o fluxo de bits para o servidor de fluxo. Como outro exemplo, quando os dispositivos de entrada de multimídia, como smartphones, câmeras, filmadoras, etc. geram diretamente um fluxo de bits, o servidor de codificação pode ser omitido.
[0288] O fluxo de bits pode ser gerado por um método de codificação ou um método de geração de fluxo de bits ao qual as modalidades do presente documento são aplicadas, e o servidor de fluxo pode armazenar temporariamente o fluxo de bits no processo de transmissão ou recepção do fluxo de bits.
[0289] O servidor de transmissão transmite os dados de multimídia para o dispositivo de usuário com base na solicitação do usuário por meio do servidor da web, e o servidor da web serve como um meio para informar o usuário sobre um serviço. Quando o usuário solicita um serviço desejado do servidor da web, o servidor da web o entrega a um servidor de transmissão e o servidor de transmissão transmite os dados de multimídia para o usuário. Nesse caso, o sistema de transmissão de conteúdo pode incluir um servidor de controle separado. Nesse caso, o servidor de controle serve para controlar um comando/resposta entre dispositivos no sistema de transmissão de conteúdo.
[0290] O servidor de transmissão pode receber conteúdo de um armazenamento de mídia e/ou um servidor de codificação. Por exemplo, quando o conteúdo é recebido do servidor de codificação, o conteúdo pode ser recebido em tempo real. Neste caso, a fim de fornecer um serviço de transmissão suave, o servidor de transmissão pode armazenar o fluxo de bits por um tempo predeterminado.
[0291] Exemplos do dispositivo do usuário podem incluir um telefone celular, um smartphone, um laptop, um terminal de transmissão digital, um assistente digital pessoal (PDA), um reprodutor de multimídia portátil (PMP), navegação, um slate PC, tablet PCs, ultrabooks, dispositivos vestíveis (por exemplo, smartwatches, óculos inteligentes, monitores tipo head-mounted display), TVs digitais, computadores de mesa, sinalização digital e semelhantes.
[0292] Cada servidor no sistema de transmissão de conteúdo pode ser operado como um servidor distribuído, caso em que os dados recebidos de cada servidor podem ser distribuídos.
Claims (8)
- Método de decodificação de vídeo realizado por um aparelho de decodificação, o método CARACTERIZADO pelo fato de que compreende:
derivar um primeiro modo de intrapredição candidato com base em um primeiro bloco vizinho que está localizado em um lado esquerdo de um bloco atual;
derivar um segundo modo de intrapredição candidato com base em um segundo bloco vizinho que está localizado em um lado superior do bloco atual;
construir uma lista de modo candidato para o bloco atual com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato;
derivar um modo de intrapredição para o bloco atual com base na lista de modo candidato;
gerar amostras preditas pela realização de predição para o bloco atual com base no modo de intrapredição; e
gerar uma gravura (picture) reconstruída para o bloco atual com base nas amostras preditas,
em que a etapa de construção da lista de modo candidato inclui derivar modos candidatos, incluindo pelo menos um dentre o primeiro modo de intrapredição candidato ou o segundo modo de intrapredição candidato, e
em que pelo menos um candidato dos modos candidatos é derivado pela aplicação de uma operação aritmética modular 64 ao primeiro modo de intrapredição candidato ou ao segundo modo de intrapredição candidato,
em que a etapa de construção da lista de modo candidato inclui derivar os modos candidatos pela determinação de se um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato é maior que um índice de modo de modo de intrapredição DC, com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato não sendo o mesmo modo de intrapredição, e
em que com base em um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato sendo maiores que o índice de modo do modo de intrapredição DC, os modos candidatos compreendem:
um modo de intrapredição derivado pela obtenção de um primeiro valor de adição de 61 a um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição e pela obtenção de um segundo valor de aplicação de operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor,
um modo de intrapredição derivado pela obtenção de um primeiro valor de subtração de 1 de um índice de modo maior entre um índice de modo do primeiro de modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor, e
um modo de intrapredição derivado pela obtenção de um primeiro valor de adição de 60 a um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor. - Método de decodificação de vídeo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o primeiro bloco vizinho é um bloco vizinho do lado esquerdo localizado em um lado mais inferior entre os blocos vizinhos que são vizinhos a um limite esquerdo do bloco atual, e
em que o segundo bloco vizinho é um bloco vizinho do lado superior localizado em um lado à extrema direita entre os blocos vizinhos que são vizinhos de um limite superior do bloco atual. - Método de decodificação de vídeo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de derivar o primeiro modo de intrapredição candidato compreende:
derivar um modo de intrapredição do primeiro bloco vizinho como o primeiro modo de intrapredição candidato quando o primeiro bloco vizinho está disponível e uma intrapredição é aplicada ao primeiro bloco vizinho, e
derivar um modo de intrapredição planar como o primeiro modo de intrapredição candidato quando o primeiro bloco vizinho não está disponível ou a intrapredição não é aplicada ao primeiro bloco vizinho. - Método de decodificação de vídeo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a etapa de derivar o segundo modo de intrapredição candidato compreende:
derivar um modo de intrapredição do segundo bloco vizinho como o segundo modo de intrapredição candidato quando o segundo bloco vizinho está disponível, uma intrapredição é aplicada ao segundo bloco vizinho, e o segundo bloco vizinho é incluído em uma CTU atual, e
derivar um modo de intrapredição planar como o segundo modo de intrapredição candidato quando o segundo bloco vizinho não está disponível ou a intrapredição não é aplicada ao segundo bloco vizinho ou o segundo bloco vizinho não está incluído na CTU atual. - Aparelho de decodificação para realizar um método de decodificação de vídeo, o aparelho de decodificação CARACTERIZADO pelo fato de que compreende:
um preditor para derivar um primeiro modo de intrapredição candidato com base em um primeiro bloco vizinho que está localizado em um lado esquerdo de um bloco atual, e para derivar um segundo modo de intrapredição candidato com base em um segundo bloco vizinho que está localizado em um lado superior do bloco atual, e para construir uma lista de modo candidato para o bloco atual com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato, e para derivar um modo de intrapredição para o bloco atual com base na lista de modo candidato, e para gerar amostras preditas pela realização de predição para o bloco atual com base no modo de intrapredição; e
um adicionador para gerar uma gravura (picture) reconstruída para o bloco atual com base nas amostras preditas,
em que o preditor realiza derivação de modos candidatos, incluindo pelo menos um dentre o primeiro modo de intrapredição candidato ou o segundo modo de intrapredição candidato,
em que pelo menos um candidato dos modos candidatos é derivado pela aplicação de uma operação aritmética modular 64 ao primeiro modo de intrapredição candidato ou ao segundo modo de intrapredição candidato,
em que o preditor realiza derivação dos modos candidatos pela determinação de se um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato é maior que um índice de modo de modo de intrapredição DC, com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato não sendo o mesmo modo de intrapredição, e
em que com base em um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato sendo maior que o índice de modo do modo de intrapredição DC, os modos candidatos compreendem:
um modo de intrapredição derivado pela obtenção de um primeiro valor de adição de 61 a um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor,
um modo de intrapredição derivado pela obtenção de um primeiro valor de subtração de 1 de um índice de modo maior entre um índice de modo do primeiro de modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor, e
um modo de intrapredição derivado pela obtenção de um primeiro valor de adição de 60 a um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor. - Método de codificação de vídeo realizado por um aparelho de codificação, o método CARACTERIZADO pelo fato de que compreende:
derivar um primeiro modo de intrapredição candidato com base em um primeiro bloco vizinho que está localizado em um lado esquerdo de um bloco atual;
derivar um segundo modo de intrapredição candidato com base em um segundo bloco vizinho que está localizado em um lado superior do bloco atual;
construir uma lista de modo candidato para o bloco atual com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato;
determinar um modo de intrapredição para o bloco atual;
gerar amostras de predição pela realização de uma predição para o bloco atual com base no modo de intrapredição; e
codificar informações de imagem incluindo informações de modo de intrapredição para o bloco atual,
em que a etapa de construção da lista de modo candidato inclui derivar modos candidatos, incluindo pelo menos um dentre o primeiro modo de intrapredição candidato ou o segundo modo de intrapredição candidato,
em que pelo menos um candidato dos modos candidatos é derivado pela aplicação de uma operação aritmética modular 64 ao primeiro modo de intrapredição candidato ou ao segundo modo de intrapredição candidato,
em que a etapa de construção da lista de modos candidatos inclui derivar os modos candidatos pela determinação de se um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato é maior que um índice de modo do modo de intrapredição DC, com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato não sendo o mesmo modo de intrapredição, e
em que com base em um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato sendo maior que o índice de modo do modo de intrapredição DC, os modos candidatos compreendem:
um modo de intrapredição derivado pela obtenção de um primeiro valor de adição de 61 a um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor,
um modo de intrapredição derivado pela obtenção de um primeiro valor de subtração de 1 de um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor, e
um modo de intrapredição derivado pela obtenção de um primeiro valor de adição de 60 a um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor. - Aparelho de codificação para realizar um método de codificação de vídeo, o aparelho de codificação CARACTERIZADO pelo fato de que compreende:
um preditor para derivar um primeiro modo de intrapredição candidato com base em um primeiro bloco vizinho que está localizado em um lado esquerdo de um bloco atual, e para derivar um segundo modo de intrapredição candidato com base em um segundo bloco vizinho que está localizado em um lado superior do bloco atual, e para construir lista de modo candidato para o bloco atual com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato, e para determinar um modo de intrapredição para o bloco atual, e para gerar amostras de predição pela realização de uma predição para o bloco atual com base no modo de intrapredição; e
um codificador por entropia para codificar informações de imagem incluindo informações de modo de intrapredição para o bloco atual,
em que o preditor realiza derivação de modos candidatos, incluindo pelo menos um dentre o primeiro modo de intrapredição candidato ou o segundo modo de intrapredição candidato,
em que pelo menos um candidato dos modos candidatos é derivado pela aplicação de uma operação aritmética modular 64 ao primeiro modo de intrapredição candidato ou ao segundo modo de intrapredição candidato,
em que o preditor realiza derivação dos modos candidatos pela determinação de se um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato é maior que um índice de modo de modo de intrapredição DC, com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato não sendo o mesmo modo de intrapredição, e
em que com base em um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato sendo maior que o índice de modo do modo de intrapredição DC, os modos candidatos compreendem:
um modo de intrapredição derivado pela obtenção de um primeiro valor de adição de 61 a um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor,
um modo de intrapredição derivado pela obtenção de um primeiro valor de subtração de 1 de um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor, e
um modo de intrapredição derivado pela obtenção de um primeiro valor de adição de 60 a um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor. - Mídia de armazenamento legível por computador não transitória CARACTERIZADA pelo fato de que armazena informações codificadas, fazendo com que um aparelho de decodificação execute um método de decodificação de vídeo, o método compreendendo:
derivar um primeiro modo de intrapredição candidato com base em um primeiro bloco vizinho que está localizado em um lado esquerdo de um bloco atual;
derivar um segundo modo de intrapredição candidato com base em um segundo bloco vizinho que está localizado em um lado superior do bloco atual;
construir a lista de modos candidatos para o bloco atual com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato;
derivar um modo de intrapredição para o bloco atual com base na lista de modos candidatos;
gerar amostras preditas pela realização de predição para o bloco atual com base no modo de intrapredição; e
gerar uma gravura (picture) reconstruída para o bloco atual com base nas amostras preditas,
em que a etapa de construção da lista de modos candidatos inclui derivar modos candidatos, incluindo pelo menos um dentre o primeiro modo de intrapredição candidato ou o segundo modo de intrapredição candidato, e
em que pelo menos um candidato dos modos candidatos é derivado pela aplicação de uma operação aritmética modular 64 ao primeiro modo candidato de intrapredição ou ao segundo modo de intrapredição candidato, e
em que a etapa de construção da lista de modos candidatos inclui derivar os modos candidatos pela determinação de se um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato é maior que um índice de modo do modo de intrapredição DC, com base no primeiro modo de intrapredição candidato e no segundo modo de intrapredição candidato não sendo o mesmo modo de intrapredição, e
em que com base em um dentre o primeiro modo de intrapredição candidato e o segundo modo de intrapredição candidato sendo maior que o índice de modo do modo de intrapredição DC, os modos candidatos compreendem:
um modo de intrapredição derivado pela obtenção de um primeiro valor de adição de 61 a um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor,
um modo de intrapredição derivado pela obtenção de um primeiro valor de subtração de 1 de um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor, e
um modo de intrapredição derivado pela obtenção de um primeiro valor de adição de 60 a um índice de modo maior entre um índice de modo do primeiro modo de intrapredição candidato e um índice de modo do segundo modo de intrapredição candidato e pela obtenção de um segundo valor de aplicação da operação aritmética modular 64 ao primeiro valor e pela obtenção de um valor de resultado de adição de 2 ao segundo valor.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862742972P | 2018-10-09 | 2018-10-09 | |
US62/742,972 | 2018-10-09 | ||
BR112021005796-0A BR112021005796B1 (pt) | 2018-10-09 | 2019-10-08 | Método de decodificação de vídeo realizado por um aparelho de decodificação, método de codificação de vídeo realizado por um aparelho de codificação e mídia de armazenamento legível por computador não transitória |
BR112021005796-0 | 2019-10-08 | ||
PCT/KR2019/013223 WO2020076064A1 (ko) | 2018-10-09 | 2019-10-08 | Mpm 리스트를 사용하는 인트라 예측 기반 영상 코딩 방법 및 그 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
BR122021007351A2 true BR122021007351A2 (pt) | 2021-07-13 |
BR122021007351B1 BR122021007351B1 (pt) | 2022-09-20 |
Family
ID=70163867
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112021005796-0A BR112021005796B1 (pt) | 2018-10-09 | 2019-10-08 | Método de decodificação de vídeo realizado por um aparelho de decodificação, método de codificação de vídeo realizado por um aparelho de codificação e mídia de armazenamento legível por computador não transitória |
BR122021007351-1A BR122021007351B1 (pt) | 2018-10-09 | 2019-10-08 | Método de codificação de imagem baseado em predição intra usando lista de mpm e dispositivo para o mesmo |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112021005796-0A BR112021005796B1 (pt) | 2018-10-09 | 2019-10-08 | Método de decodificação de vídeo realizado por um aparelho de decodificação, método de codificação de vídeo realizado por um aparelho de codificação e mídia de armazenamento legível por computador não transitória |
Country Status (4)
Country | Link |
---|---|
US (4) | US10931943B2 (pt) |
CN (5) | CN117221530A (pt) |
BR (2) | BR112021005796B1 (pt) |
WO (1) | WO2020076064A1 (pt) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102410424B1 (ko) * | 2016-10-04 | 2022-06-17 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
BR112021005796B1 (pt) * | 2018-10-09 | 2023-05-09 | Lg Electronics Inc | Método de decodificação de vídeo realizado por um aparelho de decodificação, método de codificação de vídeo realizado por um aparelho de codificação e mídia de armazenamento legível por computador não transitória |
US11012711B2 (en) * | 2018-11-29 | 2021-05-18 | Tencent America LLC | Adaptive most probable modes for multiple reference line intra prediction |
US11032551B2 (en) | 2018-12-04 | 2021-06-08 | Tencent America LLC | Simplified most probable mode list generation scheme |
CN116600113A (zh) * | 2019-01-08 | 2023-08-15 | Lg电子株式会社 | 图像编解码方法、数字存储介质和数据发送方法 |
KR20210092829A (ko) * | 2019-01-09 | 2021-07-26 | 엘지전자 주식회사 | Mpm 리스트를 사용하는 인트라 예측 기반 영상 코딩 방법 및 장치 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101611409B1 (ko) * | 2011-09-28 | 2016-04-14 | 한국전자통신연구원 | 인트라 예측 모드 부호화/복호화 방법 및 장치 |
KR102278501B1 (ko) * | 2011-10-18 | 2021-07-16 | 엘지전자 주식회사 | 인트라 예측 방법 및 그 장치 |
GB2534606A (en) * | 2015-01-29 | 2016-08-03 | Canon Kk | Method and device for encoding or decoding an image comprising encoding of decoding information representing prediction modes |
WO2016204478A1 (ko) * | 2015-06-15 | 2016-12-22 | 엘지전자(주) | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
US20160373782A1 (en) * | 2015-06-18 | 2016-12-22 | Qualcomm Incorporated | Intra prediction and intra mode coding |
US10841593B2 (en) * | 2015-06-18 | 2020-11-17 | Qualcomm Incorporated | Intra prediction and intra mode coding |
CA2990633A1 (en) * | 2015-06-26 | 2016-12-29 | Merial, Inc. | Inactivated canine influenza vaccines and methods of making and uses thereof |
US10045022B2 (en) * | 2015-08-25 | 2018-08-07 | Synopsys, Inc. | Adaptive content dependent intra prediction mode coding |
US10715922B2 (en) * | 2016-02-29 | 2020-07-14 | Vesper Technologies Inc. | Piezoelectric mems device for producing a signal indicative of detection of an acoustic stimulus |
US10448011B2 (en) * | 2016-03-18 | 2019-10-15 | Mediatek Inc. | Method and apparatus of intra prediction in image and video processing |
CN109792516B (zh) * | 2016-10-04 | 2021-05-25 | 联发科技股份有限公司 | 图像和视频编解码中用于帧内色度编解码的方法及装置 |
US10506228B2 (en) * | 2016-10-04 | 2019-12-10 | Qualcomm Incorporated | Variable number of intra modes for video coding |
US10077682B2 (en) * | 2016-12-21 | 2018-09-18 | General Electric Company | System and method for managing heat duty for a heat recovery system |
KR102660307B1 (ko) * | 2016-12-28 | 2024-04-25 | 엘지디스플레이 주식회사 | 표시 장치 |
KR20180076503A (ko) * | 2016-12-28 | 2018-07-06 | 지디앤와이 주식회사 | 롤타입 유기농 곡물 과자 및 이의 제조방법 |
KR101896822B1 (ko) * | 2017-01-05 | 2018-09-12 | 주식회사 티엘아이 | 안테나 제어 장치 및 방법 |
KR20180108086A (ko) * | 2017-03-24 | 2018-10-04 | 전상욱 | 레이저를 이용한 홀 가공장치 및 이를 이용한 홀 가공방법 |
US11212553B2 (en) * | 2017-11-28 | 2021-12-28 | Electronics And Telecommunications Research Institute | Bidirectional intra prediction method and apparatus |
CN117640963A (zh) * | 2018-02-23 | 2024-03-01 | 英迪股份有限公司 | 对图像进行解码或编码的方法和传输图像的数据的方法 |
IL312193A (en) | 2018-06-25 | 2024-06-01 | Guangdong Oppo Mobile Telecommunications Corp Ltd | Interior-frame and device prediction method |
CN112425161A (zh) * | 2018-07-11 | 2021-02-26 | 英迪股份有限公司 | 基于帧内预测的视频编码方法和装置 |
US10638161B2 (en) * | 2018-07-13 | 2020-04-28 | Tencent America LLC | Methods and apparatus for most probable mode derivation |
WO2020043092A1 (en) * | 2018-08-31 | 2020-03-05 | Mediatek Singapore Pte. Ltd. | Method and apparatus of intra prediction with mpm generation in image and video processing |
US20200099927A1 (en) * | 2018-09-24 | 2020-03-26 | Qualcomm Incorporated | Most probable modes (mpms) construction |
BR112021005796B1 (pt) * | 2018-10-09 | 2023-05-09 | Lg Electronics Inc | Método de decodificação de vídeo realizado por um aparelho de decodificação, método de codificação de vídeo realizado por um aparelho de codificação e mídia de armazenamento legível por computador não transitória |
KR20210135854A (ko) * | 2020-05-06 | 2021-11-16 | 엘지전자 주식회사 | 유도 가열 장치 및 유도 가열 장치의 제어 방법 |
-
2019
- 2019-10-08 BR BR112021005796-0A patent/BR112021005796B1/pt active IP Right Grant
- 2019-10-08 CN CN202311244415.9A patent/CN117221530A/zh active Pending
- 2019-10-08 WO PCT/KR2019/013223 patent/WO2020076064A1/ko active Application Filing
- 2019-10-08 CN CN202311247581.4A patent/CN117221531A/zh active Pending
- 2019-10-08 CN CN202311244371.XA patent/CN117221529A/zh active Pending
- 2019-10-08 CN CN201980066112.8A patent/CN112823523B/zh active Active
- 2019-10-08 CN CN202311243214.7A patent/CN117241016A/zh active Pending
- 2019-10-08 BR BR122021007351-1A patent/BR122021007351B1/pt active IP Right Grant
-
2020
- 2020-02-28 US US16/805,231 patent/US10931943B2/en active Active
- 2020-11-19 US US16/952,259 patent/US11445175B2/en active Active
-
2022
- 2022-07-20 US US17/868,888 patent/US11695924B2/en active Active
-
2023
- 2023-05-16 US US18/198,095 patent/US20230291891A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20200204798A1 (en) | 2020-06-25 |
US10931943B2 (en) | 2021-02-23 |
CN117221531A (zh) | 2023-12-12 |
CN117221529A (zh) | 2023-12-12 |
US20210092356A1 (en) | 2021-03-25 |
BR112021005796B1 (pt) | 2023-05-09 |
BR112021005796A2 (pt) | 2021-06-29 |
US20220353496A1 (en) | 2022-11-03 |
US11445175B2 (en) | 2022-09-13 |
CN112823523B (zh) | 2023-10-20 |
CN112823523A (zh) | 2021-05-18 |
US11695924B2 (en) | 2023-07-04 |
CN117241016A (zh) | 2023-12-15 |
CN117221530A (zh) | 2023-12-12 |
WO2020076064A1 (ko) | 2020-04-16 |
BR122021007351B1 (pt) | 2022-09-20 |
US20230291891A1 (en) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR122021011306B1 (pt) | Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem e mídias de armazenamento não transitória legíveis por computador | |
BR122021007351A2 (pt) | Método de codificação de imagem baseado em predição intra usando lista de mpm e dispositivo para o mesmo | |
BR112021006108A2 (pt) | método de codificação de imagem usando informações de movimento baseadas em histórico e dispositivo para o mesmo | |
BR122021011813A2 (pt) | Método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória | |
BR112021013735A2 (pt) | Método de codificação de imagens e dispositivo para executar intrapredição baseada em mrl | |
BR122021009784A2 (pt) | Método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens | |
BR122021008882A2 (pt) | Método de codificação residual e dispositivo para o mesmo | |
BR122022002096B1 (pt) | Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação, aparelho de decodificação/codificação para decodificação/codificação de imagem, método de transmissão de dados para imagem e mídia de armazenamento legível por computador não transitória | |
BR112021012505B1 (pt) | Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação e mídia de armazenamento não transitória legível por computador | |
BR122023022586A2 (pt) | Método e aparelho para sinalizar informações de particionamento de gravura | |
BR122023024976A2 (pt) | Aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e aparelho para transmissão de dados para uma imagem | |
BR122022005534B1 (pt) | Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação, método de transmissão de dados para uma imagem , aparelho de decodificação/codificação para decodificação/codificação de imagem, aparelho de transmissão para transmissão de dados para uma imagem e mídia de armazenamento não transitória legível por computador | |
BR122023022919A2 (pt) | Aparelho de decodificação para uma decodificação de vídeo, aparelho de codificação para uma codificação de vídeo e aparelho para transmissão de dados para um vídeo | |
BR122023024029A2 (pt) | Método de decodificação de imagem, método de codificação de imagem e método de transmissão de dados para uma imagem | |
BR122023024024A2 (pt) | Aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e aparelho para transmissão de dados para uma imagem | |
BR122023022807A2 (pt) | Método com base em transformada para imagem de codificação, e dispositivo para o mesmo | |
BR122023022820A2 (pt) | Aparelho de decodificação de imagem, aparelho de codificação de imagem e aparelho para transmissão de dados para informações de imagem | |
BR112021010422B1 (pt) | Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação de imagem e meio de armazenamento legível por computador não transitório | |
BR122022006273B1 (pt) | Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem | |
BR122022006263B1 (pt) | Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem | |
BR112021010422A2 (pt) | Método de codificação de imagem baseado em transformada secundária e dispositivo para o mesmo |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B03A | Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette] | ||
B07A | Application suspended after technical examination (opinion) [chapter 7.1 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 08/10/2019, OBSERVADAS AS CONDICOES LEGAIS |