BR112016014327B1 - Método de decodificação de um bloco de dados de vídeo - Google Patents

Método de decodificação de um bloco de dados de vídeo Download PDF

Info

Publication number
BR112016014327B1
BR112016014327B1 BR112016014327-2A BR112016014327A BR112016014327B1 BR 112016014327 B1 BR112016014327 B1 BR 112016014327B1 BR 112016014327 A BR112016014327 A BR 112016014327A BR 112016014327 B1 BR112016014327 B1 BR 112016014327B1
Authority
BR
Brazil
Prior art keywords
palette
block
color table
coded
current block
Prior art date
Application number
BR112016014327-2A
Other languages
English (en)
Other versions
BR112016014327A2 (pt
Inventor
Shan Liu
Xiaozhong Xu
Wang-Lin LAI
Tzu-Der Chuang
Yu-Chen Sun
Original Assignee
Hfi Innovation Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hfi Innovation Inc. filed Critical Hfi Innovation Inc.
Publication of BR112016014327A2 publication Critical patent/BR112016014327A2/pt
Publication of BR112016014327B1 publication Critical patent/BR112016014327B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation

Abstract

MÉTODO E APARELHO PARA PREDIÇÃO DE TABELA DE PALETA. Um método para codificação de paleta é exposto. Em um lado de codificador, o método determina se um primeiro bloco é codificado usando-se um modo de codificação de paleta ou uma codificação não de paleta. Se o primeiro bloco for codificado usando-se o modo de codificação não de paleta, uma primeira tabela de cor para o primeiro bloco será derivada com base em uma ou mais tabelas de cor associadas a um ou mais blocos previamente processados. Se o primeiro bloco for codificado usando-se o modo de codificação de paleta, a primeira tabela de cor será derivada a partir do primeiro bloco. Um segundo bloco codificado após o primeiro bloco pode usar a primeira tabela de cor como uma predição de paleta. No lado de decodificador, se o bloco atual for codificado usando-se o modo de codificação de paleta, uma primeira tabela de cor com base em um bloco previamente codificado será derivada e o bloco atual será decodificado usando-se uma primeira tabela de cor como um preditor de paleta.

Description

REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[001] A presente invenção reivindica prioridade para o Pedido de Patente Provisória U.S. N° de Série 61/917.474, depositado em 18 de dezembro de 2013, o Pedido de Patente Provisória U.S. N° de Série 61/921.152, depositado em 27 de dezembro de 2013, o Pedido de Patente Provisória U.S. N° de Série 61/922.131, depositado em 31 de dezembro de 2013 e o Pedido de Patente Provisória U.S. N° de Série 61/952.932, depositado em 14 de março de 2014. Os Pedidos de Patente Provisória U.S. são desse modo incorporados como referência em suas totalidades.
CAMPO DA INVENÇÃO
[002] A presente invenção se refere a uma codificação de paleta para dados de vídeo. Em particular, a presente invenção se refere a técnicas para melhoria da performance pelo desenvolvimento de um compartilhamento de paleta eficiente.
ANTECEDENTES E TÉCNICA RELACIONADA
[003] Uma codificação de vídeo de alta eficiência (HEVC) é um novo padrão de codificação que foi desenvolvido nos últimos anos. No sistema de codificação de vídeo de alta eficiência (HEVC), o macrobloco de tamanho fixo de H.264/AVC é substituído por um bloco flexível, denominado unidade de codificação (CU). Os pixels na CU compartilham os mesmos parâmetros de codificação para melhoria da eficiência de codificação. Uma CU pode começar com uma CU maior (LCU), a qual também é referida como uma unidade de árvore de codificação (CTU) em HEVC. Além do conceito de unidade de codificação, o conceito de unidade de predição (PU) também é introduzida em HEVC. Uma vez que a divisão de uma árvore hierárquica de CU seja feita, cada CU de folha é adicionalmente dividida em uma ou mais unidades de predição (PUs), de acordo com um tipo de predição e uma partição de PU.
[004] Juntamente com o desenvolvimento do padrão de codificação de vídeo de alta eficiência (HEVC), o desenvolvimento de extensões de HEVC também começou. As extensões de HEVC incluem extensões de faixa (RExt), as quais almejam formatos de cor não de 4:2:0, tais como 4:2:2 e 4:4:4, e um vídeo de profundidades de bit mais altas, tais como 12, 14 e 16 bits por amostra. Uma das aplicações mais prováveis utilizando RExt é um compartilhamento de tela, uma conexão com fio ou sem fio. Devido a características específicas de conteúdos de tela, as ferramentas de codificação foram desenvolvidas e demonstram ganhos significativos na eficiência de codificação. Dentre elas, as técnicas de codificação de paleta (também conhecida como codificação baseada em cor principal) representam blocos de pixels usando índices para a paleta (cores principais), e codificam a paleta e os índices pela exploração de redundância espacial. Embora o número total de combinações de cor possíveis seja imenso, o número de cores em uma área de imagem usualmente é muito limitado para conteúdos de tela típicos. Portanto, a codificação de paleta se torna muito efetiva para materiais de conteúdo de tela.
[005] Portanto, é desejável desenvolver métodos para melhoria adicional da eficiência de codificação e/ou redução da complexidade associada à codificação de paleta.
BREVE SUMÁRIO DA INVENÇÃO
[006] Um método para codificação de dados de vídeo usando-se uma codificação de paleta em um sistema de codificação de vídeo é exposto. Em um lado de codificador, o método determina se um primeiro bloco é codificado usando-se um modo de codificação de paleta ou um modo de codificação não de paleta. Se o primeiro bloco for codificado usando-se o modo de codificação não de paleta, uma primeira tabela de cor para o primeiro bloco será derivada com base em uma ou mais tabelas de cor associadas a um ou mais blocos previamente processados. Se o primeiro bloco for codificado usando-se o modo de codificação de paleta, a primeira tabela de cor será derivada a partir do primeiro bloco. A primeira tabela de cor é armazenada e usada por um bloco subsequente para codificação de paleta. Portanto, se um segundo bloco após o primeiro bloco for determinado para se usar o modo de codificação de paleta, o segundo bloco poderá usar a primeira tabela de cor como uma predição de paleta. O primeiro bloco pode corresponder ao último bloco codificado do segundo bloco. Por exemplo, a codificação de paleta para o segundo bloco pode se basear na primeira tabela de cor de um bloco previamente processado como um preditor de paleta.
[007] Se o primeiro bloco for codificado usando-se o modo de codificação não de paleta, a primeira tabela de cor para o primeiro bloco poderá ser derivada a partir de uma tabela de cor vizinha de um bloco acima, um bloco esquerdo ou qualquer bloco vizinho previamente codificado do primeiro bloco. A primeira tabela de cor também pode corresponder a uma última tabela de cor codificada. A primeira tabela de cor pode ficar no buffer não modificada, se o segundo bloco for um primeiro bloco seguinte ou um primeiro bloco vizinho do primeiro bloco e o segundo bloco for codificado usando-se o modo de codificação não de paleta. Mais ainda, a primeira tabela de cor pode ficar no buffer não modificado de novo, se o segundo bloco seguinte se seguindo ao primeiro bloco seguinte também for codificado usando-se o modo de codificação não de paleta. O primeiro bloco pode estar localizado em um lado esquerdo do segundo bloco. Se o segundo bloco corresponder a um bloco seguinte após o primeiro bloco e o segundo bloco for codificado no modo de codificação de paleta, então, uma tabela de cor codificada do segundo bloco poderá ser armazenada no buffer para atualização de uma ou mais tabelas de cor armazenadas. Se o segundo bloco for determinado para se usar o modo de codificação de paleta e se um primeiro bloco vizinho ou um primeiro bloco seguinte na ordem de codificação do segundo bloco usado para a derivação de um preditor de paleta vizinho for codificado no modo de codificação não de paleta ou estiver indisponível, então, a primeira tabela de cor armazenada no buffer poderá ser usada como o preditor de paleta para a referida aplicação de codificação de paleta para o segundo bloco.
[008] Se o segundo bloco for determinado para usar o modo de codificação de paleta e se o primeiro bloco prévio codificado do segundo bloco usado para a derivação do primeiro preditor de paleta for codificado no modo de codificação não de paleta ou estiver indisponível, então, a tabela de cor do segundo bloco codificado prévio codificado no modo de codificação de paleta poderá ser usada como a tabela de cor do primeiro bloco vizinho para a referida aplicação de codificação de paleta para o segundo bloco. O primeiro bloco e o segundo bloco pode estar em uma mesma unidade de árvore de codificação (CTU) ou em uma mesma linha de CTU. O segundo bloco pode copiar o preditor de paleta correspondente à primeira tabela de cor como a tabela de cor do segundo bloco em uma base de entrada por entrada ou copiá-la inteiramente. O segundo bloco pode derivar o preditor de paleta com base em uma única tabela de cor vizinha associada a um bloco de lado esquerdo do segundo bloco, e o segundo bloco pode usar a primeira tabela de cor ou uma tabela de cor previamente codificada, se o bloco de lado esquerdo do segundo bloco for codificado em um modo de codificação não de paleta ou estiver indisponível.
[009] Em um lado de decodificador, o sistema determina se o bloco atual é codificado em um modo de codificação de paleta ou um modo de codificação não de paleta. Se o bloco atual for codificado usando-se o modo de codificação de paleta, uma primeira tabela de cor será derivada com base em um bloco codificado prévio do bloco atual e o bloco atual será codificado usando-se uma primeira tabela de cor armazenada em um buffer como um preditor de paleta. O bloco atual pode copiar o preditor de paleta correspondente à primeira tabela de cor como uma tabela de cor atual do bloco atual em uma base de entrada por entrada ou copiá-la inteiramente.
[010] Um método de codificação de um bloco de dados de vídeo usando-se codificação de paleta de acordo com uma tabela de cor de referência também é exposto. Uma tabela de cor de referência é selecionada a partir do livro de paleta consistindo em uma ou mais tabelas de cor armazenadas. Se um modo de codificação de paleta for selecionado para o bloco atual, uma codificação de paleta será aplicada ao bloco atual usando-se a tabela de cor de referência selecionada como um preditor de paleta do bloco atual. A tabela de cor de referência pode corresponder a uma última tabela de cor codificada. A tabela de cor de referência pode ser usada entrada por entrada ou usada inteiramente. Se o modo de codificação não de paleta for selecionado para o bloco atual, o livro de paleta não será atualizado. Se o modo de codificação de paleta for selecionado para o bloco atual, uma tabela de cor atual codificada ou decodificada do bloco atual poderá ser checada quanto a uma atualização do livro de paleta. A tabela de cor atual codificada ou decodificada do bloco atual pode substituir uma tabela de cor armazenada mais antiga. Um índice de livro pode ser usado para a identificação da tabela de cor de referência selecionada a partir do livro de paleta. O índice de livro pode ter um valor menor para uma tabela de cor armazenada mais recente no livro de paleta. O índice de livro pode ser inferido, se o livro de paleta contiver apenas uma tabela de cor.
BREVE DESCRIÇÃO DOS DESENHOS
[011] A figura 1 ilustra um exemplo de gerenciamento de tabela de paleta, em que a tabela de paleta é armazenada em um nível de bloco e pode ser copiada de bloco para bloco.
[012] A figura 2 ilustra um exemplo de gerenciamento de tabela de paleta de acordo com uma modalidade da presente invenção, em que a tabela de paleta é armazenada em um nível mais alto e pode ser compartilhada por blocos no mesmo nível mais alto.
[013] A figura 3 ilustra um fluxograma de exemplo de um sistema de codificador que incorpora uma codificação de paleta, de acordo com uma modalidade da presente invenção.
[014] A figura 4 ilustra um fluxograma de exemplo de um sistema de decodificador que incorpora uma codificação de paleta, de acordo com uma modalidade da presente invenção.
[015] A figura 5 ilustra um fluxograma de exemplo de um sistema de codificação usando uma codificação de paleta com base em uma tabela de cor de referência, de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
[016] Na presente invenção, há várias técnicas para melhoria da performance de codificação de paleta. Na técnica relacionada, quando um bloco (por exemplo, uma unidade de codificação (CU)) não é codificada em um modo de paleta, a tabela de cor será reinicializada para zero ou regulada como não disponível. Portanto, nenhuma informação de paleta pode ser usada pelos blocos seguintes para predição de paleta. De modo a melhorar a performance, uma modalidade da presente invenção salva ou armazena uma ou mais tabelas de cor para a CU codificada não de paleta. A tabela de cor para este bloco codificado não de paleta pode ser derivada a partir de uma tabela de cor codificada e considerada como a tabela de cor deste bloco codificado não de paleta. Portanto, a tabela de cor para um bloco codificado não de paleta é “derivada” e usada para predição de paleta de um outro bloco. Por exemplo, a última tabela de cor codificada ou a tabela de cor a partir de um bloco esquerdo ou de um acima pode ser usada como a tabela de cor do bloco codificado não de paleta. A tabela de cor derivada para o bloco codificado não de paleta também é referida como uma tabela de cor “derivada” nesta exposição. Estas tabelas de cor salvas ou armazenadas podem ser referenciadas pelos blocos vizinhos ou pelos blocos vizinhos em uma ordem de codificação para codificação de tabela de cor, ou podem ser a tabela de cor de referência para um bloco vizinho codificado não de paleta ou o bloco seguinte em uma ordem de codificação.
[017] Em um exemplo, uma CU codificada não de paleta pode usar a tabela de cor a partir de seu bloco esquerdo como a tabela de cor. Esta tabela de cor, isto é, uma tabela de cor “derivada”, pode ser usada para a predição de tabela de cor para os blocos vizinhos. Esta tabela de cor também pode ser propagada para os blocos vizinhos como sua tabela de cor, se os blocos vizinhos não forem codificados no modo de paleta.
[018] Em um outro exemplo, uma CU codificada não de paleta pode usar a tabela de cor do último bloco codificado como sua tabela de cor. Esta tabela de cor pode ser usada para predição de tabela de cor para os blocos vizinhos ou os blocos seguintes na ordem de codificação. Esta tabela de cor também pode ser propagada para os blocos vizinhos ou os blocos seguintes em uma ordem de codificação como sua tabela de cor, se os blocos vizinhos ou os blocos seguintes na ordem de codificação não forem codificados no modo de paleta.
[019] Em ainda um outro exemplo, uma CU codificada não de paleta pode usar a tabela de cor do bloco vizinho como sua tabela de cor, se o bloco vizinho for codificado no modo de paleta. Caso contrário, a CU codificada não de paleta usa a tabela de cor do bloco vizinho que não é codificado no modo de paleta. Por exemplo, uma prioridade de tabela de cor pode ser adotada, tal como: usar a tabela de cor esquerda, se o bloco esquerdo for codificado no modo de paleta; caso contrário, usar a tabela de cor acima, se o bloco acima for codificado no modo de paleta; e se nenhum dos acima, usar a tabela de cor esquerda, onde o bloco esquerdo é um bloco codificado não de paleta. Esta tabela de cor pode ser usada para uma predição de tabela de cor para os blocos vizinhos. Esta tabela de cor pode ser propagada também para os blocos vizinhos como sua tabela de cor, se eles não estiverem codificados no modo de paleta.
[020] Quando a tabela de cor de uma CU é determinada como sendo codificada no modo de paleta, ela tomará a tabela de cor vizinha como o preditor de paleta. Quando o bloco vizinho não é codificado no modo de paleta, a tabela de cor armazenada pode ser usada como o preditor de paleta. Em um outro exemplo, se o bloco vizinho não for codificado no modo de paleta ou não estiver disponível, a tabela de cor de um outro bloco vizinho ou a tabela de cor do último bloco codificado será usada e substituirá a tabela de cor de um bloco vizinho correspondente.
[021] De modo a se reduzir a exigência de buffer de linha, a tabela de cor na linha de CTU superior pode ser tratada como indisponível e substituída por uma tabela de cor padrão (por exemplo, tudo zero). Alternativamente, a tabela de cor pode ser substituída pela tabela de cor do bloco esquerdo ou o último bloco codificado. A reutilização e a propagação da tabela de cor também podem ser limitadas em uma CTU ou uma linha de CTU. Portanto, não há necessidade de armazenamento da tabela de cor derivada através de CTUs ou através de linhas de CTU.
[022] Para melhoria da eficiência de codificação, se um dos blocos vizinhos não estiver disponível ou não estiver codificado no modo de paleta, a tabela de cor de um dos blocos vizinhos remanescentes que é codificado no modo de paleta poderá ser usada para substituição da tabela de cor do bloco vizinho. Por exemplo, se o bloco esquerdo não for codificado no modo de paleta e, contudo, o bloco acima for codificado no modo de paleta, a tabela de cor do bloco esquerdo poderá ser substituída pela tabela de cor do bloco acima.
[023] Embora a CU atual possa usar a tabela de cor a partir do bloco esquerdo ou do bloco acima como sua tabela de cor, ela também pode restringir a CU atual para usar apenas a tabela de cor a partir da CU esquerda como sua tabela de cor. Portanto, não haverá necessidade de armazenamento das tabelas de cor associadas a uma linha de CU superior. A técnica de reutilização de tabela de cor usará a tabela de cor do bloco esquerdo como sua tabela de cor derivada, se a CU atual for um bloco codificado não de paleta. Esta tabela de cor derivada pode ser usada como a tabela de cor de referência para a CU vizinha ou seguinte da CU atual.
[024] Embora as modalidades acima exponham técnicas para reutilização de uma tabela de cor a partir de uma tabela de cor previamente processada para um bloco codificado não de paleta, em uma outra modalidade, a tabela de cor do último bloco codificado é usada como o preditor de tabela de cor para codificação de tabela de cor. Se o último bloco codificado for codificado no modo de paleta, a tabela de cor será atualizada pela nova tabela de cor do último bloco codificado. Se o último bloco codificado não for codificado no modo de paleta, ele manterá a tabela de cor do último bloco codificado prévio não modificada. Em outras palavras, se o último bloco codificado não for codificado no modo de paleta, a tabela de cor salva não será atualizada. Esta tabela de cor do último bloco codificado pode ser referida como o preditor de paleta para a codificação de tabela de cor dos blocos seguintes.
[025] A predição de tabela de cor pode ser aplicada em uma base de predição de entrada por entrada. Neste caso, cada elemento correspondente da tabela de cor atual é predito pelo elemento correspondente do preditor de paleta na tabela de cor armazenada. A predição de tabela de cor também pode copiar a tabela de cor inteira. Neste caso, a tabela de cor atual inteira pode ser codificada a partir do preditor de paleta na tabela de cor armazenada.
[026] Um outro tipo de modalidade da presente invenção mantém uma ou mais tabelas de cor derivadas em um livro de paleta e seleciona uma tabela de cor a partir do livro de paleta para predição de paleta. Vários meios podem ser usados para a geração do livro de paleta. Por exemplo, um histórico das tabelas de cor recentemente codificadas pode ser armazenado em um “livro de paleta”. A CU atual pode escolher uma das tabelas de paleta armazenadas no livro de paleta, conforme indicado pelo índice de livro como o preditor de tabela de cor. A predição de tabela de cor pode ser aplicada em uma base de predição de entrada por entrada. Neste caso, cada elemento correspondente da tabela de cor atual é predito pelo elemento correspondente do preditor de paleta na tabela de cor armazenada. A predição de tabela de cor também pode copiar a tabela de cor inteira. Neste caso, a tabela de cor atual inteira pode ser codificada a partir do preditor de paleta na tabela de cor armazenada. Se a CU atual for codificada no modo de paleta, a paleta atual substituirá uma tabela de cor no livro de paleta. A nova paleta é codificada e transmitida para o decodificador, de modo que o mesmo processo de atualização de livro de paleta possa ser realizado da mesma forma em ambos o codificador e o decodificador.
[027] Há várias formas de atualização e ordenação dos conjuntos de paleta previamente codificados. Em um exemplo em particular, as tabelas de paleta, também referidas como conjuntos de paleta, são simplesmente ordenadas com base em sua ordem de codificação, isto é, a paleta mais recentemente codificada é armazenada no começo do “livro de paleta” (isto é, tendo um índice menor), enquanto as mais antigas são armazenadas depois (isto é, tendo índices maiores). Por exemplo, um livro de paleta com um tamanho KK é usado para o armazenamento de KK conjuntos de paletas previamente codificadas. Quando um novo conjunto de paleta está sendo codificado, as entradas de 1 a (KK-1) no “livro de paleta” serão movidas para as entradas 2 a KK, de modo a se tornar a primeira entrada disponível para a paleta recém-codificada. Isto é simplesmente um processo de atualização e ordenação de primeiro a entrar, primeiro a sair. Vários exemplos de codificação de paleta baseada em “livro de paleta” são ilustrados conforme se segue.
[028] Controle no sentido de CU de compartilhamento de paleta usando-se um “livro de paleta”. O pseudocódigo a seguir demonstra um exemplo de compartilhamento de paleta usando-se um livro de paleta, quando o compartilhamento for controlado em uma base no sentido de CU (isto é, um compartilhamento para todas as componentes de cor). A modalidade também pode ser usada para um formato de paleta de triplet, conforme discutido em JCTVC-N-0249.
Figure img0001
[029] No pseudocódigo acima, quando uma predição de paleta é usada, conforme indicado por palette_pred ser 1, um índice de livro de paleta (isto é, book_index) é determinado a partir do fluxo de bit. A paleta para a CU atual (isto é, Current CU palette[color_index]) é derivada a partir do livro de paleta tendo book_index (isto é, palette_book[book_index][color_index]). Se a CU atual não usar uma predição de paleta, as entradas 1 a (KK-1) no “livro de paleta” serão movidas para as entradas 2 a KK, de modo a se tornar a primeira entrada disponível para a paleta recém-codificada (isto é, palette_book[k][color_index] = palette_book[k- 1][color_index] para (k<=KK, k>1, k--)). A paleta de CU atual recém-analisada gramaticalmente (isto é, Parse syntax for current CU palette[color_index][n]) será posta no livro de paleta liderando (isto é, palette_book[0][color_index][n] = current CU palette[color_index][n]).
Controle no sentido de componente de compartilhamento de paleta usando-se um “livro de paleta”.
[030] A quinta modalidade é similar à quarta modalidade, exceto pelo fato de o controle de compartilhamento ser no sentido do comprimento. Um pseudocódigo de exemplo de acordo com esta modalidade é mostrado abaixo para cada componente de cor.
Figure img0002
Figure img0003
Controle de luma / croma de compartilhamento de paleta usando um “livro de paleta”.
[031] Embora um controle de compartilhamento de paleta no sentido de CU e um no sentido de componente usando um “livro de paleta” sejam mostrados nas quarta e quinta modalidades, respectivamente, o controle de compartilhamento de livro de paleta também pode ser no sentido de luma / croma. A componente de luma e as componentes de croma podem ter controles de compartilhamento em separado (por exemplo, um indicador tipo de flag de controle para luma e um indicador tipo de flag de controle para croma). Cada uma das componentes de luma e croma pode ter sua própria tabela de paleta. Isto pode ser particularmente útil para um conteúdo com grau diferente de variações nas componentes de luma e croma. Um pseudocódigo de exemplo de acordo com esta modalidade é mostrado abaixo para um formato de cor YUV, em que um mesmo indicador tipo de flag de controle de compartilhamento é para a componente U e a V (isto é, palette_pred_UV), indicadores tipo de flag de controle em separado também podem ser usados.
Figure img0004
Figure img0005
[032] Embora os exemplos mostrados acima permitem que a CU acima e a CU esquerda para a CU atual compartilhem sua paleta. Contudo, também pode restringir para permitir apenas uma CU vizinha (apenas a CU acima ou apenas a CU esquerda) para compartilhamento da paleta. Mais ainda, embora os exemplos demonstrem a granularidade de codificação de paleta e o compartilhamento em uma base de CU, outra granularidade de codificação de paleta e compartilhamento pode ser usada da mesma forma. Por exemplo, uma codificação de paleta e um compartilhamento podem ser executados em uma base de unidade de predição (PU), uma base de unidade de árvore de codificação (CTU), uma base de linha de CTU ou uma base de múltiplas CTUs.
[033] Embora o esquema de primeiro a entrar, primeiro a sair seja usado nos pseudocódigos para a quarta modalidade através da quarta modalidade para a atualização e a ordenação de “livro de paleta”, outros meios também podem ser utilizados, desde que o codificador e o decodificador possam executar o mesmo processo. Por exemplo, um contador pode ser usado para se manter um rastreamento da frequência de cada conjunto de paleta sendo selecionado para compartilhamento. O livro de paleta então pode ser atualizado de acordo com a frequência, tal como se ordenando-os a partir de frequência de seleção alta para frequência de seleção baixa.
[034] Um aspecto da presente invenção se dirige ao gerenciamento de um livro de paleta. Quando uma codificação preditiva é usada para paleta, o livro de paleta precisa ser atualizado de acordo com a seleção de paleta para os blocos de paleta codificada, particularmente durante uma reinicialização e/ou uma inicialização de livro de paleta. Uma vez que uma codificação de paleta é utilizada como um modo de codificação de bloco (por exemplo, modo de PU, CU ou CTB), um gerenciamento de paleta direto é manter uma estrutura de dados de paleta para cada bloco (por exemplo, PU, CU ou CTB). Neste caso, as paletas armazenadas em blocos de paleta codificada previamente têm que ser copiadas de modo que estas paletas possam ser usadas por blocos subsequent es para uma codificação preditiva, conforme mostrado na figura 1. As paletas armazenadas em blocos de paleta codificada previamente têm que ser copiadas mesmo para blocos codificados não de paleta. Esse gerenciamento de paleta de nível de bloco é ineficiente, uma vez que a operação de cópia tem que ser repetida para todos os blocos. Quando múltiplas paletas são usadas para o livro de paleta, o tempo de codificação e o consumo de potência podem aumentar significativamente.
[035] De modo a se melhorar a eficiência de gerenciamento de livro de paleta, as modalidades da presente invenção gerenciam a livro de paleta acima de um nível de bloco. Por exemplo, o livro de paleta pode ser gerenciado no nível de fatia, e o livro de paleta é inicializado no começo de cada fatia, conforme mostrado na figura 2. A caixa de linha grossa 200 indica fronteiras de fatia. O processo de atualização de livro de paleta de primeiro a entrar, primeiro a sair exposto acima pode ser usado. O livro de paleta então é mantido para cada fatia correspondente. Quando um bloco de paleta codificada na fatia precisa atualizar o livro de paleta, tal como uma nova paleta sendo usada ou algumas cores principais na paleta sendo substituída, a paleta armazenada será modificada de modo conforme. Caso contrário, o livro de paleta armazenado simplesmente ficará não modificado, e não haverá necessidade de copiá-lo de bloco para bloco.
[036] Um compartilhamento de tabela de cor pode ser estendido para intercomponente. Ao invés de se enviar uma tabela de cor individual para cada componente de cor, as modalidades da presente invenção podem compartilhar a mesma tabela de cor dentre várias componentes de cor diferentes. Por exemplo, se a ferramenta de codificação de compartilhamento de tabela estiver ligada, N tabelas de cor poderão ser enviadas e compartilhadas dentre as componentes de cor, em que N é um inteiro maior do que zero. Quando N é igual a 1, apenas uma tabela de cor é enviada e múltiplas componentes de cor compartilham a mesma tabela. Cada componente usa a tabela de cor compartilhada diretamente ou derivada uma nova tabela a partir da tabela compartilhada.
[037] O compartilhamento de tabela de cor intercomponente de acordo com a presente invenção pode ser habilitado ou desabilitado em níveis diferentes de codificação, para a provisão de níveis diferentes de flexibilidade. O nível de codificação pode corresponder a uma unidade de transformada (TU), uma unidade de predição (PU), uma unidade de codificação (CU), um bloco de árvore de codificação (CTB), uma fatia, uma imagem ou um nível de sequências. Por exemplo, se uma CU for codificada com cor principal (isto é, codificada com paleta), um indicador tipo de flag poderá ser sinalizado para a CU de paleta codificada para indicar se o compartilhamento de tabela de cor intercomponente está habilitado ou não.
[038] Conforme mencionado acima, a tabela de cor para um bloco codificado não de paleta pode compartilhar (isto é, reusar) a tabela de cor a partir da tabela de cor do bloco esquerdo e do bloco acima. Quando uma predição no sentido de elemento é usada para uma codificação de tabela de cor (isto é, uma codificação de paleta), um primeiro indicador tipo de flag é usado para todo elemento para indicar se o elemento atual é igual ao elemento colocalizado da tabela de cor do bloco esquerdo. Se não, um outro indicador tipo de flag é usado para indicar se o elemento atual é igual ao elemento colocalizado da tabela de cor do bloco acima.
[039] Em uma outra modalidade da presente invenção, uma codificação de paleta melhorada é exposta para remoção da redundância de codificação de tabela de cor. O elemento colocalizado na tabela de cor esquerda e o elemento colocalizado na tabela de cor acima são comparados. Se eles forem os mesmos, apenas um indicador tipo de flag será requerido para se indicar se o elemento atual é igual ao elemento colocalizado na tabela de cor acima ou na tabela de cor esquerda.
[040] Mais ainda, em JCTVC-N-0247 (Guo et al.,“RCE3: Results of Test 3.1 on Palette Mode for Screen Content Coding”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 14th Meeting: Viena, AT, 25 de filho a 2 de julho de 2013 Documento: JCTVC-N0247), JCTVC-O-0182 e JCTVC-O0218 (Guo et al., “Evaluation of Palette Mode Coding on HM-12.0+RExt- 4.1”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 15th Meeting: Geneva, CH, 23 de outubro a 1 de novembro de 2013, Documento: JCTVC-O0218), o mapa de índice é sinalizado após a sinalização da tabela de cor. Uma modalidade da presente invenção sinaliza o mapa de índice primeiramente e usa a informação por uma análise gramatical do mapa de índice para a codificação de outros dados. A informação pela análise gramatical do mapa de índice pode ser a informação de ocorrência. A informação pode ser usada para a predição de paleta e valor de pixel de reconstrução. Em particular, a ocorrência de cor principal na unidade de codificação pode ser derivada pela análise gramatical do mapa de índice no lado de decodificador. Após a análise gramatical do mapa de índice, o decodificador pode obter a informação de cor de cada cor principal.
[041] A informação de ocorrência pode ser usada para a predição de paletas em tabela de cor e um valor de pixel de reconstrução. Há várias formas para acumulação da informação de ocorrência. Por exemplo, a informação de ocorrência pode corresponder à ocorrência da cor principal na unidade de codificação. Em um outro exemplo, a informação de ocorrência pode corresponder à ocorrência de uma cor principal predita perdida durante uma codificação de mapa de índice.
[042] Um outro aspecto da presente invenção se dirige a uma inicialização de paleta para uma codificação de paleta preditiva. Quando uma codificação preditiva é usada para a codificação de paleta através de blocos diferentes, as paletas codificadas / decodificadas previamente (livro de paleta) são usadas como um preditor. Contudo, certos blocos, por exemplo, o primeiro bloco de paleta codificada em uma fatia / imagem, pode não ter acesso a qualquer paleta codificada / decodificada previamente. Se um mecanismo de reinicialização for usado, o primeiro bloco de paleta codificada poderá se referir ao livro de paleta reinicializado. A seguir, vários meios de inicialização são expostos para a inicialização de um livro de paleta. Inicialização para tudo zero.
[043] Nesta modalidade, no começo de cada fatia / imagem, a paleta no livro de paleta é toda regulada para zeros para todas as tabelas de cor. Quanto ao mecanismo de reinicialização, isto é, uma paleta de reinicialização no começo de uma partição de forma de onda ou uma partição de ladrilho, ou o começo de cada linha de CTU, o livro de paleta é reinicializado para tudo zero.
Inicialização para valores de cor específicos.
[044] Nesta modalidade, quando uma inicialização é necessária (por exemplo, começo de cada fatia / imagem, começo de cada particionamento de forma de onda / ladrilho, ou começo de cada linha de CTU), valores específicos são atribuídos às cores de paleta. Para um formato de vídeo YUV, as componentes U e V contêm muito menos variações e tendem a se concentrar em torno do nível médio (por exemplo, 128 para um formato de 8 bits e 512 para um formato de 10 bits). Por exemplo, as tabelas de cor para as componentes U e V podem ser inicializadas para valores iguais a ou muito próximos do nível médio. Quanto às componentes Y, zero ou um nível médio pode ser usado para uma inicialização. Mais ainda, os valores específicos para inicialização podem ser sinalizados ou derivados a partir de um nível alto, tal como Cabeçalho de Fatia (SH), PPS ou SPS.
Sinalização de valores de cor específicos em uma sintaxe de nível alto (HLS).
[045] Vários exemplos de HLS são expostos conforme se segue.
SPS
[046] Conforme mencionado anteriormente, a inicialização de nível médio será particularmente útil para um formato YUV. Assim, uma sintaxe de nível alto indicando o formato de cor da sequência, tal como um elemento de sintaxe no SPS, pode ser utilizada para a especificação do uso de uma inicialização de nível médio para um livro de paleta. Um pseudocódigo de exemplo para HLS no nível de SPS é mostrado conforme se segue:
Figure img0006
[047] O nível médio pode ser de 128 para um formato de 8 bits e 512 para um formato de 10 bits.
PPS
[048] Um outro exemplo de modalidade é usar PPS para a especificação dos valores de inicialização para um livro de paleta. Este método é particularmente útil para regulagens de cena diferentes em uma sequência. Por exemplo, para imagens em uma cena escura, a PPS pode indicar que é para inicializar o livro de paleta com valores baixos (por exemplo, 0 para escuro completo). Por outro lado, para imagens em uma cena brilhante, valores de cor mais altos podem ser usados para inicialização. Os valores exatos usados para inicialização podem ser explicitamente sinalizados no PPS.
[049] Uma outra forma para atribuição de valores de inicialização é analisar o tom da imagem e sinalizar os valores de inicialização correspondentes às cores dominantes da imagem. Em um exemplo, quando uma inicialização de paleta é necessária para uma porção de uma imagem (por exemplo, o começo de fatia, forma de onda ou ladrilho), os valores de inicialização específicos derivados ou sinalizados na PPS correspondente serão usados.
Cabeçalho de Fatia (SH)
[050] Neste exemplo, os valores de inicialização para cada fatia são sinalizados no cabeçalho de fatia. No caso especial em que cada imagem contém apenas uma fatia, isto seria equivalente ao uso de PPS. Quando há múltiplas fatias em uma imagem, uma granularidade mais fina de seleção de valor de inicialização de paleta pode ser obtida com uma especificação baseada em cabeçalho de fatia. Os elementos de sintaxe são adicionados ao SH para indicar os valores específicos a serem usados para uma inicialização do livro de paleta. Os valores exatos podem ser determinados em um caso similar como no caso de PPS, por exemplo, pela análise do brilho e/ou do tom da fatia.
[051] A figura 3 ilustra um fluxograma de exemplo de um sistema de codificador que incorpora uma codificação de paleta de acordo com uma modalidade da presente invenção. O sistema determina se um primeiro bloco é codificado usando- se um modo de codificação de paleta ou um modo de codificação não de paleta, conforme mostrado na etapa 310. Os dados de entrada associados a um segundo bloco são recebidos na etapa 320, em que o primeiro bloco é codificado antes para o segundo bloco. Os dados de entrada podem ser recuperados a partir de uma memória (por exemplo, uma em de computador, um buffer (RAM ou DRAM) ou outros meios) ou a partir de um processador. Se o primeiro bloco é codificado usando-se o modo de codificação não de paleta é checado na etapa 330. Se o resultado for “Sim”, a etapa 340 será executada. Se o resultado for “Não”, a etapa 350 será executada. Na etapa 340, uma primeira tabela de cor para o primeiro bloco é derivada com base em uma ou mais tabelas de cor associadas a um ou mais blocos processados previamente. Na etapa 350, a primeira tabela de cor é derivada a partir do segundo bloco. Na etapa 360, se o segundo bloco for determinado para usar o modo de codificação de paleta, a codificação de paleta será aplicada ao segundo bloco usando-se um preditor de paleta incluindo a primeira tabela de cor armazenada no buffer.
[052] A figura 4 ilustra um fluxograma de exemplo de um sistema de decodificador que incorpora uma codificação de paleta de acordo com uma modalidade da presente invenção. Os dados codificados associados a um bloco atual são recebidos na etapa 410. Se o bloco atual é codificado em um modo de codificação de paleta ou um modo de codificação não de paleta é determinado na etapa 420. Se o resultado for “Sim”, as etapas 430 e 440 serão realizadas. Se o resultado for “Não”, o processo será terminado. Na etapa 430, uma tabela de cor vizinha é derivada com base em um primeiro bloco vizinho do bloco atual. Na etapa 440, o bloco atual é decodificado usando-se uma primeira tabela de cor armazenada em um buffer como o preditor de paleta.
[053] A figura 5 ilustra um fluxograma de exemplo de um sistema de codificação usando uma codificação de paleta com base em uma tabela de cor de referência de acordo com uma modalidade da presente invenção. Uma tabela de cor de referência é selecionada a partir de um livro de paleta que consiste em uma ou mais tabelas de cor armazenadas na etapa 510. Os dados de entrada associados a um bloco atual são recebidos na etapa 520. Uma codificação de paleta é aplicada ao bloco atual usando-se a tabela de cor de referência como um preditor de paleta do bloco atual, se um modo de codificação de paleta for selecionado para o bloco atual, conforme mostrado na etapa 530.
[054] Os fluxogramas mostrados são pretendidos para ilustração de exemplos de codificação de paleta de acordo com a presente invenção. Uma pessoa versada na técnica pode modificar cada etapa, rearranja as etapas, dividem uma etapa, ou combinam etapas para a prática da presente invenção, sem se desviar do espírito da presente invenção. Na exposição, uma sintaxe específica e semântica foram usadas para ilustração de exemplos para a implementação de modalidades da presente invenção. Uma pessoa versada na prática da presente invenção pela substituição da sintaxe e da semântica por uma sintaxe e uma semântica equivalentes, sem se desviar do espírito da presente invenção.
[055] A descrição acima é apresentada para se permitir que uma pessoa de conhecimento comum na técnica para a prática da presente invenção, conforme provido no contexto de uma aplicação em particular e sua exigência. Várias modificações nas modalidades descritas serão evidentes para aqueles com conhecimento na técnica, e os princípios gerais definidos aqui podem ser aplicados a outras modalidades. Portanto, a presente invenção não é pretendida para ser limitada às modalidades em particular mostradas e descritas, mas é para estar de acordo com o escopo mais amplo consistente com os princípios e os novos recursos expostos aqui. Na descrição detalhada acima, vários detalhes específicos são ilustrados, de modo a se prover um entendimento completo da presente invenção. Não obstante, será entendido por aqueles versados na técnica que a presente invenção pode ser praticada.
[056] A modalidade da presente invenção conforme descrita acima, pode ser implementada em hardwares, códigos de software variados ou em uma combinação dos mesmos. Por exemplo, uma modalidade da presente invenção pode ser um circuito integrado em um chip de compressão de vídeo ou um código de programa integrado em um software de compressão de vídeo para a execução do processamento descrito aqui. Uma modalidade da presente invenção também pode ser um código de programa a ser executado em um processador de sinal digital (DSP) para a execução do processamento descrito aqui. A invenção também pode envolver várias funções a serem executadas por um processador de computador, um processador de sinal digital, um microprocessador ou um arranjo de porta programável no campo (FPGA). Estes processadores podem ser configurados para a execução de tarefas em particular de acordo com a invenção, pela execução de um código de software que pode ser lido em máquina ou um código de frequente que define os métodos em particular concretizados pela invenção. O código de software ou o código de firmware podem ser desenvolvidos em linguagens de programação diferentes e formatos ou estilos diferentes. O código de software também pode ser compilado para diferentes plataformas alvos. Contudo, formatos de código diferentes, estilos e linguagens de códigos de software e outros meios de configuração de um código para a execução das tarefas de acordo com a invenção não se desviarão do espírito e do escopo da invenção.
[057] Outras modalidades de acordo com a presente invenção podem ser resumidas conforme se segue: Modalidade A: um método de codificação de um bloco de dados de vídeo usando-se uma codificação de paleta em um sistema de codificação de vídeo, o método compreendendo: determinar se um primeiro bloco é codificado usando- se um modo de codificação de paleta ou um modo de codificação não de paleta; e receber dados de entrada associados a um segundo bloco, em que o primeiro bloco é codificado antes do segundo bloco; se o primeiro bloco for codificado usando-se o modo de codificação não de paleta; derivar uma primeira tabela de cor para o primeiro bloco com base em uma ou mais tabelas de cor associadas a um ou mais blocos processados previamente; se o primeiro bloco for codificado usando-se o modo de codificação de paleta: derivar a primeira tabela de cor a partir do primeiro bloco; e se o segundo bloco for determinado para usar o modo de codificação de paleta, aplicar uma codificação de paleta ao segundo bloco usando-se um preditor de paleta incluindo a primeira tabela de cor. Modalidade B: o método da Modalidade A, o primeiro bloco corresponde a um último bloco codificado do segundo bloco. Modalidade C: o método da Modalidade A, em que a primeira tabela de cor corresponde a uma tabela de cor vizinha de um bloco acima, um bloco esquerdo ou qualquer bloco vizinho previamente codificado do primeiro bloco, se o primeiro bloco for codificado usando-se o modo de codificação não de paleta. Modalidade D: o método da Modalidade A, em que a primeira tabela de cor corresponde a uma última tabela de cor codificada, se o primeiro bloco for codificado usando- se o modo de codificação não de paleta. Modalidade E: o método da Modalidade A, em que ainda compreende o armazenamento da primeira tabela de cor em um buffer acessível pelo segundo bloco. Modalidade F: o método da Modalidade E, em que a primeira tabela de cor fica no buffer não modificada, se o segundo bloco for um primeiro bloco seguinte ou um primeiro bloco vizinho do primeiro bloco e se o segundo bloco for codificado usando-se o modo de codificação não de paleta. Modalidade G: o método da Modalidade F, em que a primeira tabela de cor ainda fica no buffer não modificada, se um segundo bloco seguinte se seguindo ao primeiro bloco seguinte também for codificado usando-se o modo de codificação não de paleta. Modalidade H: o método da Modalidade F, em que o primeiro bloco está localizado em um lado esquerdo do segundo bloco. Modalidade I: o método da Modalidade E, em que, se o segundo bloco corresponder a um bloco seguinte após o primeiro bloco e o segundo bloco for codificado no modo de codificação de paleta, uma tabela de cor codificada do segundo bloco será armazenada no buffer para a atualização de uma ou mais tabelas de cor armazenadas. Modalidade J: o método da Modalidade E, em que, se o segundo bloco for determinado para usar o modo de codificação de paleta e se o primeiro bloco vizinho ou um primeiro bloco seguinte na ordem de codificação do segundo bloco usado para a derivação de um preditor de paleta vizinho for codificado no modo de codificação não de paleta ou estiver indisponível, a primeira tabela de cor armazenada no buffer será usada como o preditor de paleta para a referida aplicação de codificação de paleta ao segundo bloco. Modalidade K: o método da Modalidade A, em que, se o segundo bloco for determinado para usar o modo de codificação de paleta e se um primeiro bloco codificado prévio do segundo bloco usado para a derivação de um primeiro preditor de paleta for codificado no modo de codificação não de paleta ou estiver indisponível, a tabela de cor do segundo bloco codificado prévio codificado no modo de codificação de paleta será usada como a tabela de cor do primeiro bloco vizinho para a referida aplicação de codificação de paleta ao segundo bloco. Modalidade L: o método da Modalidade A, em que o primeiro bloco e o segundo bloco estão em uma mesma unidade de árvore de codificação (CTU) ou em uma mesma linha de CTU. Modalidade M: o método da Modalidade A, em que a referida aplicação de codificação de paleta ao segundo bloco copia o preditor de paleta correspondente à primeira tabela de cor como a tabela de cor do segundo bloco em uma base de entrada por entrada. Modalidade N: o método da Modalidade A, em que a referida aplicação de codificação de paleta ao segundo bloco copia o preditor de paleta correspondente à primeira tabela de cor inteiramente como a tabela de cor do segundo bloco. Modalidade O: o método da Modalidade A, em que a referida aplicação de codificação de paleta ao segundo bloco deriva o preditor de paleta com base em uma única tabela de cor vizinha associada a um bloco de lado esquerdo do segundo bloco, e a referida aplicação de codificação de paleta ao segundo bloco usa a primeira tabela de cor ou uma tabela de cor previamente codificada, se o bloco de lado esquerdo do segundo bloco for codificado em um modo de codificação não de paleta ou estiver indisponível.
[058] A invenção pode ser concretizada em outras formas específicas, sem se desviar de seu espírito ou das características essenciais. Os exemplos descritos são para serem considerados em todos os aspectos apenas como ilustrativos e não restritivos. O escopo da invenção é indicado, portanto, pelas reivindicações em apenso, ao invés de pela descrição precedente. Todas as mudanças às quais venham no significado e na faixa de equivalência das reivindicações devem ser englobadas no seu escopo.

Claims (6)

1. Método de decodificação de um bloco de dados de vídeo usando-se uma codificação de paleta em um sistema de codificação de vídeo, o método compreende: o recebimento de dados codificados associados a um bloco atual; determinar se o bloco atual é codificado em um modo de codificação de paleta ou um modo de codificação não de paleta; e se o bloco atual for codificado usando-se o modo de codificação de paleta: derivar uma primeira tabela de cor com base em uma tabela de cor de referência, em que a tabela de cor de referência é derivada de um bloco codificado prévio do bloco atual e em que a tabela de cor de referência é armazenada em um buffer; e decodificar o bloco atual usando-se a primeira tabela de cor como um preditor de paleta; caracterizado pelo fato de que a tabela de cor de referência fica no buffer não modificado se o bloco atual for codificado usando-se o modo de codificação não de paleta, e uma tabela de cor atual codificada do bloco atual é armazenada no buffer para atualização da tabela de cor de referência se o bloco atual for codificado usando-se o modo de codificação de paleta.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a referida decodificação do bloco atual copia o preditor de paleta correspondente à primeira tabela de cor como uma tabela de cor atual do bloco atual em uma base de entrada por entrada.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira tabela de cor corresponde a uma última tabela de cor codificada.
4. Método de codificação de um bloco de dados de vídeo usando-se uma codificação de paleta em um sistema de codificação de vídeo, o método compreende: o recebimento de dados de entrada associados a um bloco atual; e determinar se um modo de codificação de paleta ou um modo de codificação não de paleta deve ser selecionado para o bloco atual; e se um modo de codificação de paleta for selecionado para o bloco atual, derivar uma primeira tabela de cor com base em uma tabela de cor de referência, em que a tabela de cor de referência é derivada de um bloco codificado anterior do bloco atual e em que a tabela de cor de referência é armazenada em um buffer; a aplicação de uma codificação de paleta ao bloco atual usando-se a primeira tabela de cor como um preditor de paleta do bloco atual; o método é caracterizado pelo fato de que a tabela de cor de referência fique no buffer não modificado se o bloco atual for codificado usando o modo de codificação não paleta, e uma tabela de cor atual codificada do bloco atual for armazenada no buffer para atualizar a tabela de cor de referência se o atual bloco é codificado usando o modo de codificação de paleta.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a referida aplicação de codificação de paleta ao bloco atual copia o preditor de paleta como a tabela de cor atual codificada do bloco atual em uma base de entrada por entrada.
6. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a primeira tabela de cor corresponde a uma última tabela de cor codificada.
BR112016014327-2A 2013-12-18 2014-12-18 Método de decodificação de um bloco de dados de vídeo BR112016014327B1 (pt)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201361917474P 2013-12-18 2013-12-18
US61/917,474 2013-12-18
US201361921152P 2013-12-27 2013-12-27
US61/921,152 2013-12-27
US201361922131P 2013-12-31 2013-12-31
US61/922,131 2013-12-31
US201461952932P 2014-03-14 2014-03-14
US61/952,932 2014-03-14
PCT/CN2014/094234 WO2015090217A1 (en) 2013-12-18 2014-12-18 Method and apparatus for palette table prediction

Publications (2)

Publication Number Publication Date
BR112016014327A2 BR112016014327A2 (pt) 2018-06-26
BR112016014327B1 true BR112016014327B1 (pt) 2023-03-21

Family

ID=53402119

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016014327-2A BR112016014327B1 (pt) 2013-12-18 2014-12-18 Método de decodificação de um bloco de dados de vídeo

Country Status (7)

Country Link
US (2) US10477203B2 (pt)
EP (1) EP3085090B8 (pt)
KR (1) KR101782280B1 (pt)
CN (1) CN106068647B (pt)
BR (1) BR112016014327B1 (pt)
CA (1) CA2934116C (pt)
WO (1) WO2015090217A1 (pt)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101782280B1 (ko) * 2013-12-18 2017-10-23 에이치에프아이 이노베이션 인크. 팔레트 테이블 예측을 위한 방법 및 장치
CN106105229B (zh) * 2014-03-14 2019-03-15 寰发股份有限公司 使用调色板编码来编码视频数据的块的方法及装置
KR102494913B1 (ko) 2014-03-14 2023-02-06 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 팔레트 코딩
US9924175B2 (en) * 2014-06-11 2018-03-20 Qualcomm Incorporated Determining application of deblocking filtering to palette coded blocks in video coding
US10136141B2 (en) 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
CN107211122B (zh) 2015-01-29 2020-05-05 佳能株式会社 对自包含式编码结构进行编码或解码时的调色板预测结果初始化程序
GB2534607A (en) * 2015-01-29 2016-08-03 Canon Kk Palette predictor initializer when encoding or decoding self-contained coding structures
CN106254865B (zh) 2015-06-08 2020-06-09 同济大学 一种图像编码及解码方法、图像处理设备
JP6545570B2 (ja) * 2015-08-18 2019-07-17 株式会社東芝 符号化装置、復号装置および画像処理装置
US11259047B2 (en) 2016-04-06 2022-02-22 Kt Corporation Method and apparatus for processing video signal
US11039147B2 (en) * 2016-05-28 2021-06-15 Mediatek Inc. Method and apparatus of palette mode coding for colour video data
EP3449633A4 (en) * 2016-05-28 2019-12-18 MediaTek Inc. METHOD AND DEVICE OF A PALLET MODE CODING FOR COLOR VIDEO DATA
US10534973B2 (en) * 2017-04-18 2020-01-14 Google Llc Methods, systems, and media for color palette extraction for video content items
US11330306B2 (en) * 2019-08-07 2022-05-10 Tencent America LLC Method and apparatus for video coding
WO2021040460A1 (ko) * 2019-08-30 2021-03-04 주식회사 케이티 비디오 신호 처리 방법 및 장치
MX2022002617A (es) * 2019-09-12 2022-03-25 Bytedance Inc Uso de predictor de paleta en codificacion de video.
KR20220047834A (ko) * 2019-09-23 2022-04-19 엘지전자 주식회사 팔레트 모드를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3630835B2 (ja) 1996-04-02 2005-03-23 キヤノン株式会社 画像処理方法
US6570626B1 (en) * 1998-06-26 2003-05-27 Lsi Logic Corporation On-screen display format reduces memory bandwidth for on-screen display systems
US6731295B1 (en) 1998-11-09 2004-05-04 Broadcom Corporation Graphics display system with window descriptors
US6819793B1 (en) * 2000-06-30 2004-11-16 Intel Corporation Color distribution for texture and image compression
US7302006B2 (en) 2002-04-30 2007-11-27 Hewlett-Packard Development Company, L.P. Compression of images and image sequences through adaptive partitioning
US20070206682A1 (en) 2003-09-29 2007-09-06 Eric Hamilton Method And Apparatus For Coding Information
CN101068352A (zh) 2007-06-08 2007-11-07 中兴通讯股份有限公司 一种网络图像的压缩方法和系统
CN100576921C (zh) 2008-01-14 2009-12-30 浙江大学 基于块分类的混合图像压缩方法
WO2010022002A1 (en) 2008-08-19 2010-02-25 Marvell World Trade Ltd Systems and methods for perceptually lossless video compression
US20110110416A1 (en) 2009-11-12 2011-05-12 Bally Gaming, Inc. Video Codec System and Method
JP6120490B2 (ja) 2011-11-07 2017-04-26 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US11259020B2 (en) * 2013-04-05 2022-02-22 Qualcomm Incorporated Determining palettes in palette-based video coding
CN103248893B (zh) 2013-05-10 2015-12-23 四川大学 从h.264/avc标准到hevc标准的快速帧间转码方法及其转码器
US9558567B2 (en) * 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
US10291827B2 (en) * 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
EP3926955A1 (en) * 2013-12-10 2021-12-22 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding blocks of pixel
GB201321850D0 (en) * 2013-12-10 2014-01-22 Canon Kk Palette Prediction
KR101782280B1 (ko) * 2013-12-18 2017-10-23 에이치에프아이 이노베이션 인크. 팔레트 테이블 예측을 위한 방법 및 장치

Also Published As

Publication number Publication date
CA2934116A1 (en) 2015-06-25
BR112016014327A2 (pt) 2018-06-26
EP3085090A4 (en) 2016-11-02
KR20160123287A (ko) 2016-10-25
KR101782280B1 (ko) 2017-10-23
CN106068647B (zh) 2019-05-17
US20160316199A1 (en) 2016-10-27
WO2015090217A1 (en) 2015-06-25
CA2934116C (en) 2019-07-30
EP3085090B8 (en) 2020-09-30
EP3085090A1 (en) 2016-10-26
US20200021802A1 (en) 2020-01-16
CN106068647A (zh) 2016-11-02
US10972723B2 (en) 2021-04-06
EP3085090B1 (en) 2020-08-12
US10477203B2 (en) 2019-11-12

Similar Documents

Publication Publication Date Title
BR112016014327B1 (pt) Método de decodificação de um bloco de dados de vídeo
BR112016012417B1 (pt) Método e aparelho para inicialização e gerenciamento de paleta
US11265537B2 (en) Method for palette table initialization and management
US11457237B2 (en) Methods of escape pixel coding in index map coding
US9788004B2 (en) Method of color index coding with palette stuffing
CN116016941A (zh) 管理已解码图像缓存器的方法及视频编码器或视频解码器
CA2934246C (en) Palette prediction and sharing in video coding
BR112016017201B1 (pt) Método de codificação e decodificação para precisão adaptativa de vetor de movimento de um bloco de dados de vídeo
JP2016076924A (ja) ビデオ符号化のパルス符号変調、および、パレット符号化の方法
CN107710760A (zh) 图像编码方法、装置以及图像处理设备
BR112016014088B1 (pt) Método e aparelho de codificação de um bloco de dados de vídeo
BR112016021228B1 (pt) Método de codificação de um bloco de dados de vídeo e aparelho
BR112018000549B1 (pt) Método de particionamento de blocos para a codificação ou decodificação de vídeo para um codificador de vídeo ou para um decodificador de vídeo respectivamente e aparelho para o particionamento de blocos para a codificação ou a decodificação de vídeo efetuada por um codificador de vídeo ou por um decodificador de vídeo respectivamente
BR112017009946B1 (pt) Métodos de conversão de pixel de escape em código em conversão de mapa de indicador em código

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 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 18/12/2014, OBSERVADAS AS CONDICOES LEGAIS