BR112014012893B1 - Método e aparelho para codificar e decodificar uma unidade de codificação - Google Patents

Método e aparelho para codificar e decodificar uma unidade de codificação Download PDF

Info

Publication number
BR112014012893B1
BR112014012893B1 BR112014012893-6A BR112014012893A BR112014012893B1 BR 112014012893 B1 BR112014012893 B1 BR 112014012893B1 BR 112014012893 A BR112014012893 A BR 112014012893A BR 112014012893 B1 BR112014012893 B1 BR 112014012893B1
Authority
BR
Brazil
Prior art keywords
coding unit
data
coding
mode
encoding
Prior art date
Application number
BR112014012893-6A
Other languages
English (en)
Other versions
BR112014012893A2 (pt
Inventor
Christopher James Rosewarne
Original Assignee
Canon Kabushiki Kaisha
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 Canon Kabushiki Kaisha filed Critical Canon Kabushiki Kaisha
Publication of BR112014012893A2 publication Critical patent/BR112014012893A2/pt
Publication of BR112014012893B1 publication Critical patent/BR112014012893B1/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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/46Embedding additional information in the video signal during the compression process
    • 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/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

MÉTODO, APARELHO E SISTEMA PARA CODIFICAR E DECODIFICAR O MAPA DE SIGNIFICÂNCIA PARA COEFICIENTES RESIDUAIS DE UMA UNIDADE DE TRANSFORMADA. É revelado um método de decodificação de uma pluralidade de unidades de codificação a partir de um fluxo de bit de dados de vídeo. O método determina uma estrutura de unidade de codificação da pluralidade de unidades de codificação a partir de um primeiro bloco de dados do fluxo de bit. A estrutura de unidade de codificação descreve uma divisão de uma unidade de codificação na pluralidade de unidades de codificação. O método decodifica, de acordo com a estrutura de unidade de codificação determinada, dados codificados de desvio para a pluralidade de unidades de codificação a partir de um segundo bloco de dados do fluxo de bit. O método decodifica, de acordo com a estrutura de unidade de codificação determinada, dados residuais para a pluralidade de unidades de codificação a partir de um terceiro bloco de dados do fluxo de bit. O método, então, forma a pluralidade de unidades de codificação a partir do fluxo de bit com o uso dos dados residuais e os dados codificados de desvio. Um método de codificação também é revelado.

Description

CAMPO DA TÉCNICA
[0001] A presente invenção refere-se, em geral, a processamento de sinal de vídeo digital e, em particular, a um método, aparelho e sistema para codificar e decodificar coeficientes residuais de uma unidade de transformada (TU), em que a unidade de transformada (TU) pode ter um formato quadrado ou um formato não quadrado.
ANTECEDENTES
[0002] Muitas aplicações para codificação de vídeo existem atualmente, incluindo aplicações para transmissão e armazenamento de dados de vídeo. Muitos padrões de codificação de vídeo também foram desenvolvidos e outros estão atualmente em desenvolvimento. Desenvolvimentos recentes em padronização de codificação de vídeo induziram à formação de um grupo chamada a Equipe de colaboração Conjunta de Codificação de Vídeo (“Joint Collaborative Team on Video Coding” - JCT-VC). A Equipe de Colaboração Conjunta em Codificação de vídeo (JCT-VC) inclui membros do grupo de Grupo de Estudo 16, Questão 6 (SG16/Q6) do Setor de Padronização de Telecomunicação (ITU-T) da União Internacional de Telecomunição (ITU), conhecido como o Grupo de Especialistas em Codificação de Vídeo (VCEG), e membros da Organizações Internacionais de Padronização/Comitê Técnico Conjunto de Comissão Eletrotécnica Internacional 1 / Subcomitê 29 / Grupo de Trabalho 11 (ISO/IEC JTC1/SC29/WG11), também conhecido como o Grupo de Especialistas de Gravura em Movimento (MPEG).
[0003] A Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) tem o objetivo de produzir um novo padrão de codificação de vídeo para superar de forma significativa um padrão de codificação de vídeo presentemente existente, conhecido como "H.264/MPEG-4 AVC”. O padrão H.264/MPEG-4 AVC é, por si, um grande aprimoramento de padrões anteriores de codificação de vídeo, tais como MPEG-4 e ITU-T H.263. O novo padrão de codificação de vídeo sob desenvolvimento foi denominado “Codificação de Vídeo de Alta Eficiência (HEVC)”. A equipe de Colaboração Conjunta em Codificação de vídeo JCT-VC também considera os desafios de implantação que aparecem a partir da tecnologia proposta para codificação de vídeo de alta eficiência (HEVC) que cria dificuldades ao escalar implantações do padrão para operar em altas resoluções ou altas taxas de quadro.
[0004] Uma área do padrão H.264/MPEG-4 AVC de codificação de vídeo que apresenta dificuldades para alcançar alta eficiência de compressão é a da codificação de coeficientes residuais usados para representar dados de vídeo. Dados de vídeo são formados por uma sequência de quadros, com cada quadro tendo uma matriz bidimensional de amostras. Tipicamente, quadros incluem uma luminância e dois canais de crominância. Cada quadro é decomposto em uma ou mais fatias. Cada fatia contém um ou mais maiores unidades de codificação (LCUs). As maiores unidades de codificação (LCUs) têm um tamanho fixo, com dimensões de borda tendo uma potência de dois e tendo largura e altura iguais, tais como 64 amostras luma. Um recurso do padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento é “fatias de granularidade fina”. Quando o recurso de fatias de granularidade fina é permitido, os limites de fatia não são restritos aos limites de maior unidade de codificação (LCU). As fatias de granularidade fina podem ser permitidas em um nível de fluxo de bits.
[0005] Uma árvore de codificação permite a subdivisão de cada maior unidade de codificação (LCU) em quatro regiões de dimensões iguais, em que cada um tem metade da largura e altura de uma maior unidade de codificação (LCU) pai. Cada uma das regiões pode ser adicionalmente subdividida em quatro regiões de dimensões iguais. Onde uma região não for adicionalmente subdividida, uma unidade de codificação existe, ocupando a totalidade da região. Tal um processo de subdivisão pode ser aplicado de forma recursiva até que o tamanho de uma região que é um tamanho de menor unidade de codificação (SCU) seja alcançado e uma unidade de codificação (CU) o tamanho da menor unidade de codificação (SCU) é deduzido. A subdivisão recursiva de uma maior unidade de codificação em uma hierarquia de unidades de codificação tem uma estrutura QuadTree e é denominada como árvore de codificação. As unidades de codificação (CUs) ou regiões têm uma propriedade conhecida como sua ‘profundidade’, que se refere a sua posição na árvore de codificação em termos do nível na hierarquia de subdivisões. Esse processo de subdivisão é codificado no fluxo de bits como uma sequência de sinalizadores aritmeticamente codificados. Quando fatias de granularidade fina são permitidas, é especificado um limite que determina o menor tamanho de unidade de codificação no qual um limite de fatia pode existir.
[0006] Um conjunto de unidades de codificação existe na árvore de codificação que não são adicionalmente subdivididos, sendo aquelas unidades de codificação que ocupam os nós folha da árvore de codificação. Árvores de transformada existem nessas unidades de codificação. Uma árvore de transformada pode decompor adicionalmente uma unidade de codificação com o uso de uma estrutura QuadTree conforme usado para a árvore de codificação. Nos nós folha da árvore de transformada, dados residuais são codificadas com o uso de unidades de transformada (TUs). Em contraste, à árvore de codificação, a árvore de transformada pode subdividir as unidades de codificação em unidades de transformada que têm um formato não quadrado. Além disso, a estrutura de árvore de transformada não exige que unidades de transformada (TUs) ocupem toda a área fornecida pela unidade de codificação pai.
[0007] Cada unidade de codificação nos nós folha das árvores de codificação é subdividido em uma ou mais matrizes de amostras de dados preditos, cada uma conhecida como uma unidade de predição (PU). Cada unidade de predição (PU) contém uma predição de uma porção dos dados de quadro de entrada, derivados aplicando-se um processo de intrapredição ou um processo de interpredição. Diversos métodos podem ser usados para codificar unidades de predição (PUs) dentro de uma unidade de codificação (CU). Uma única unidade de predição (PU) pode ocupar uma área inteira da unidade de codificação (CU), ou a unidade de codificação (CU) pode ser repartida em duas unidades de predição (PUs) retangulares de tamanho igual, tanto horizontalmente como verticalmente. Adicionalmente, as unidades de codificação (CU) podem ser repartidas em quatro unidades de predição (PUs) quadradas de tamanho igual.
[0008] Um codificador de vídeo comprime os dados de vídeo em um fluxo de bits convertendo-se os dados de vídeo em uma sequência de elementos de sintaxe. Um esquema de codificação aritmética binária de contexto adaptativo (CABAC) é definido dentro do padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento, com o uso de um esquema de codificação aritmética idêntica ao definido no Padrão de compressão de vídeo MPEG4-AVC/H.264. No padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento, quando a codificação aritmética binária de contexto adaptativo (CABAC) está em uso, cada elemento de sintaxe é expresso como uma sequência de bins, em que os bins são selecionados a partir de um conjunto de bins disponíveis. O conjunto de bins disponíveis é obtido a partir de um modelo de contexto, com um contexto por bin. Cada contexto detém um provável valor de bin (o ‘valMPS’) e um estado de probabilidade para a codificação aritmética ou operação de decodificação aritmética. Observe que bins também podem ser codificados por desvio, em que não há associação com um contexto. Bins codificados por desvio consomem um bit no fluxo de bits e, portanto, são adequados para bins com probabilidade igual de ser valor um ou valor zero. A criação de tal uma sequência de bins a partir de um elemento de sintaxe é conhecida como “binarização” dos elementos de sintaxe.
[0009] Em um codificador de vídeo ou decodificador de vídeo, como contexto separado, informações estão disponíveis para cada bin, a seleção de contexto para bins fornece um meio para aprimorar a eficiência de codificação. Em particular, a eficiência de codificação pode ser aprimorada selecionando-se um bin particular de modo que propriedades estatísticas de instâncias anteriores do bin, em que as informações de contexto associado foram usadas, correlacionem com propriedades estatísticas de uma instância atual do bin. Tal seleção de contexto utiliza frequentemente informações locais espaciais para determinar o contexto ideal.
[0010] No padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento e em H.264/MPEG-4 AVC, uma predição para um bloco atual é derivada, com base nos dados de amostra de referência tanto de outros quadros, como de regiões vizinhas dentro do bloco atual que foram anteriormente decodificados. A diferença entre a predição e os dados de amostra desejada é conhecida como o residual. Uma representação de domínio de frequência do residual é uma matriz bidimensional de coeficientes residuais. Por convenção, o canto superior esquerdo da matriz bidimensional contém coeficientes residuais que representam informações de baixa frequência.
[0011] Um aspecto de taxa de transferência do padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento se refere à capacidade codificar ou decodificar dados de vídeo em altas taxas de bit. O esquema de codificação aritmética binária de contexto adaptativo (CABAC) empregado no padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento suporta um modo de ‘probabilidade igual’ de operação denominado como ‘codificação por desvio’. Nesse modo, o bin não é associado a um contexto do modelo de contexto, e então não há etapa de atualização de modelo de contexto. Nesse modo, é possível ler múltiplos bins adjacentes a partir do fluxo de bits em paralelo, desde que cada bin seja codificado por desvio, o que aumenta a taxa de transferência. Por exemplo, implantações de hardware podem gravar/ler grupos de dados codificados por desvio adjacentes em paralelo para aumentar a taxa de transferência de codificação/decodificação do fluxo de bits.
Sumário
[0012] É um objetivo da presente invenção superar substancialmente, ou pelo menos melhorar uma ou mais desvantagens de disposições existentes.
[0013] De acordo com um aspecto da presente revelação, é fornecido um método de decodificação de uma pluralidade de unidades de codificação de um fluxo de bits de dados de vídeo, sendo que método compreende:
[0014] determinar uma estrutura de unidade de codificação da pluralidade de unidades de codificação a partir de um primeiro bloco de dados do fluxo de bits, sendo que a estrutura de unidade de codificação descreve uma divisão de uma unidade de codificação na pluralidade de unidades de codificação;
[0015] decodificar, de acordo com a estrutura de unidade de codificação determinada, dados codificados por desvio para a pluralidade de unidades de codificação a partir de um segundo bloco de dados do fluxo de bits;
[0016] decodificar, de acordo com a estrutura de unidade de codificação determinada, dados residuais para a pluralidade de unidades de codificação a partir de um terceiro bloco de dados do fluxo de bits; e
[0017] formar a pluralidade de unidades de codificação a partir do fluxo de bits com o uso dos dados residuais e dos dados codificados por desvio.
[0018] De forma desejável, o método compreende adicionalmente determinar um tamanho do segundo bloco de dados de acordo com a estrutura de unidade de codificação determinada.
[0019] Preferencialmente, o método compreende adicionalmente (901) determinar um valor de sinalizador repartido de modo que, quando uma unidade de codificação atual for maior do que uma menor unidade de codificação, o sinalizador de valor repartido seja decodificado a partir do fluxo de bits e quando a unidade de codificação atual tiver tamanho igual à menor unidade de codificação, deduz-se que o sinalizador de valor repartido seja zero. Essa implantação pode compreender adicionalmente usar o valor de sinalizador repartido determinado para determinar se a estrutura de unidade de codificação está em um nó de folha.
[0020] Em outra implantação, o fluxo de bits (1600) codifica um sinalizador que permite fatia de granularidade fina no começo de cada maior unidade de codificação, de modo que, quando as fatias de granularidade fina não forem permitidas para uma maior unidade de codificação, o método seja aplicado a essa maior unidade de codificação (LCU), e, quando as fatias de granularidade fina forem permitidas para uma maior unidade de codificação, o método seja aplicado a cada unidade de codificação subdividida de tamanho igual ao limite de fatia de granularidade fina.
[0021] Preferencialmente um modo remanescente de uma unidade de codificação da pluralidade de unidades de codificação é codificado com o uso de um código de comprimento variável, sendo que o dito método compreende adicionalmente calcular um comprimento mínima com base em um valor de sinalizador de modo mais provável e um tamanho de unidade de predição associado à unidade de codificação.
[0022] De forma desejável, modos remanescentes da pluralidade de unidades de codificação são codificados com o uso de um código de comprimento variável, sendo que o dito método compreende adicionalmente calcular um comprimento mínima com base na estrutura de unidade de codificação, valores de sinalizador de modo mais provável e tamanhos de unidade de predição associados à pluralidade de unidades de codificação.
[0023] De forma vantajosa, quando os dados codificados por desvio são de comprimento desconhecido, o método compreende adicionalmente acessar o fluxo de bits para determinar um segmento de dados que contém pelo menos alguns dados codificados por desvio, decodificar índices de modo mais provável e modos remanescentes do segmento de dados, e estabelecer um percurso total de um comprimento dos dados decodificados, de modo que quando todos os dados codificados por desvio forem decodificados a partir do segmento de dados, o comprimento de percurso total seja então consumido a partir do fluxo de bits.
[0024] De acordo com outro aspecto da presente revelação, é fornecido um método de codificação de uma pluralidade de unidades de codificação em um fluxo de bits de dados de vídeo, sendo que método compreende:
[0025] codificar uma estrutura de unidade de codificação da pluralidade de unidades de codificação para formar um primeiro bloco de dados do fluxo de bits, sendo que a estrutura de unidade de codificação descreve uma divisão de uma unidade de codificação na pluralidade de unidades de codificação;
[0026] codificar, de acordo com a estrutura de unidade de codificação, dados codificados por desvio para a pluralidade de unidades de codificação para formar um segundo bloco de dados do fluxo de bits; e
[0027] codificar, de acordo com a estrutura de unidade de codificação, dados residuais para a pluralidade de unidades de codificação para formar um terceiro bloco de dados do fluxo de bits; e
[0028] armazenar o primeiro, segundo e terceiro blocos de dados para codificar a pluralidade de unidades de codificação no fluxo de bits de dados de vídeo.
[0029] De forma desejável, esse método compreende adicionalmente armazenar sinalizadores repartidos no primeiro bloco de dados para codificar a estrutura de unidade de codificação.
[0030] Preferencialmente o método compreende adicionalmente codificar aritmeticamente o primeiro bloco.
[0031] De forma vantajosa o método compreende adicionalmente codificar por desvio o segundo bloco.
[0032] De acordo com outro aspecto é revelado um método de decodificação de pelo menos uma unidade de codificação a partir de um fluxo de bits de dados de vídeo, sendo que método compreende:
[0033] determinar uma estrutura de unidade de codificação da pelo menos uma unidade de codificação a partir do fluxo de bits, sendo que a estrutura de unidade de codificação descreve uma divisão de uma unidade de codificação na pelo menos uma unidade de codificação e uma divisão da pelo menos uma unidade de codificação em uma pluralidade de unidades de predição;
[0034] decodificar, de acordo com a estrutura de unidade de codificação determinada, um sinalizador de modo mais provável aritmeticamente codificado para cada uma dentre a pluralidade de unidades de predição na pelo menos uma unidade de codificação a partir de um primeiro bloco de dados no fluxo de bits codificados de forma adjacente;
[0035] decodificar, de acordo com a estrutura de unidade de codificação determinada, dados codificados por desvio para cada uma dentre a pluralidade de unidades de predição na pelo menos uma unidade de codificação a partir de um segundo bloco de dados de dados no fluxo de bits codificados de forma adjacente;
[0036] determinar modos de intrapredição para cada uma dentre a pluralidade de unidades de predição de acordo com cada um dos sinalizadores de modo mais provável e os dados codificados por desvio; e
[0037] decodificar a pelo menos uma unidade de codificação a partir do fluxo de bits com o uso dos modos de intrapredição determinados.
[0038] Preferencialmente os dados codificados por desvio contém um índice de modo mais provável. Os dados codificados por desvio podem conter alternativa ou adicionalmente um valor de modo remanescente.
[0039] Outros aspectos também são revelados.
BREVE DESCRIÇÃO DOS DESENHOS
[0040] Pelo menos uma modalidade da presente invenção será agora descrita em referência aos desenhos a seguir, nos quais:
[0041] A Figura 1 é um diagrama em bloco esquemático que mostra módulos funcionais de um codificador de vídeo;
[0042] A Figura 2 é um diagrama em bloco esquemático que mostra módulos funcionais de um decodificador de vídeo;
[0043] A Figuras 3A e 3B forma um diagrama em bloco esquemático de um sistema de computador de propósitos gerais no qual o codificador e decodificador das Figuras 1 e 2, respectivamente, podem ser praticadas;
[0044] A Figura 4 é um diagrama em bloco esquemático que mostra módulos funcionais de um codificador por entropia;
[0045] A Figura 5 é um diagrama em bloco esquemático que mostra módulos funcionais de um decodificador por entropia;
[0046] A Figura 6 é um diagrama em bloco esquemático que mostra uma maior unidade de codificação (LCU) exemplificadora;
[0047] A Figura 7 é um diagrama em bloco esquemático que mostra um fluxo de bits convencional que representa a maior unidade de codificação (LCU) exemplificadora;
[0048] A Figura 8 é um diagrama em bloco esquemático que mostra um fluxo de bits de acordo com a presente revelação que representa a maior unidade de codificação (LCU) exemplificadora;
[0049] A Figura 9 é um fluxograma esquemático que mostra um método de acordo com a presente revelação para decodificar os elementos de sintaxe de uma maior unidade de codificação (LCU) de um fluxo de bits relacionado ao da Figura 8;
[0050] A Figura 10 é um fluxograma esquemático que mostra um método resumido de acordo com a presente revelação para decodificar os elementos de sintaxe de uma maior unidade de codificação (LCU) de um fluxo de bits;
[0051] A Figura 11 é um fluxograma esquemático que mostra um método de acordo com a presente revelação para codificar os elementos de sintaxe de uma maior unidade de codificação (LCU);
[0052] A Figura 12 é um fluxograma esquemático que mostra um método resumido de acordo com a presente revelação para codificar os elementos de sintaxe de uma maior unidade de codificação (LCU) de um fluxo de bits;
[0053] A Figura 13 é um diagrama em bloco esquemático que mostra um fluxo de bits que representa a maior unidade de codificação (LCU) exemplificadora produzida pelo método alternativo de acordo com a presente revelação para análise;
[0054] A Figura 14 é um fluxograma esquemático que mostra um método alternativo de acordo com a presente revelação para decodificar os elementos de sintaxe de uma maior unidade de codificação (LCU);
[0055] A Figura 15 é um diagrama em bloco esquemático que mostra uma maior unidade de codificação (LCU) exemplificadora com um limite de fatia dentro da maior unidade de codificação (LCU);
[0056] A Figura 16 é um diagrama em bloco esquemático que mostra um fluxo de bits que representa a maior unidade de codificação (LCU) exemplificadora produzida pelo método para análise com fatias de granularidade fina (FGS) permitida; e
[0057] A Figura 17 é um fluxograma esquemático que mostra um método alternativo adicional de acordo com a presente revelação para decodificar os elementos de sintaxe de uma maior unidade de codificação (LCU).
DESCRIÇÃO DETALHADA INCLUINDO O MELHOR MODO
[0058] Onde for feita referência em qualquer um ou mais dos desenhos anexos para etapas e/ou recursos, que têm os mesmos numerais de referência, essas etapas e/ou recursos têm para os fins desta descrição a(s) mesma(s) função(ões) ou operação(ões), a menos que a intenção contrária apareça.
[0059] A Figura 1 é um diagrama em bloco esquemático que mostra módulos funcionais de um codificador de vídeo 100. A Figura 2 é um diagrama em bloco esquemático que mostra módulos funcionais de um decodificador de vídeo 200 correspondente. O codificador de vídeo 100 e decodificador de vídeo 200 podem ser implantados com o uso de um sistema 300 de computador de propósito geral, conforme mostrado nas Figuras 3A e 3B em que os vários módulos funcionais podem ser implantados por hardware dedicado dentro do sistema de computador 300, por software executável dentro do sistema de computador 300, ou alternativamente por uma combinação de hardware dedicado e software executável dentro do sistema de computador 300.
[0060] Conforme observado na Figura 3A, o sistema de computador 300 inclui: um módulo de computador 301; dispositivos de entrada tais como um teclado 302, um dispositivo apontador mouse 303, um dispositivo scanner 326, uma câmera 327, e um microfone 380; e dispositivos de saída que incluem um impressora 315, um dispositivos de exibição 314 e alto-falantes 317. Um Modulador-Demodulador externo (Modem) dispositivo transceptor 316 pode ser usado pelo módulo de computador 301 para comunicação a e de uma rede de comunicações 320 por meio de uma conexão 321. A rede de comunicações 320 pode ser um rede de área ampla (WAN), tal como a Internet, uma rede de telecomunicações celular, ou uma WAN privada. Onde for a conexão 321 for uma linha de telefone, o modem 316 pode ser um modem de “conexão discada” tradicional. Alternativamente, onde a conexão 321 for uma conexão de alta capacidade (por exemplo, cabo), o modem 316 pode ser um modem de banda larga. Um modem sem fio também pode ser usada para conexão sem fio à rede de comunicações 320.
[0061] O módulo de computador 301 inclui tipicamente pelo menos uma unidade de processador 305, e uma unidade de memória 306. Por exemplo, a unidade de memória 306 pode ter memória de acesso aleatório de semicondutor (RAM) e memória somente de leitura de semicondutor (ROM). O módulo de computador 301 também inclui uma série de interfaces de entrada/saída (E/S) que incluem: uma interface de áudio-vídeo 307 que se acopla ao visor de vídeo 314, alto-falantes 317 e microfone 380; uma interface de E/S 313 que se acopla ao teclado 302, mouse 303, dispositivo scanner 326, câmera 327 e opcionalmente um joystick ou outro dispositivo de interface humano-computador (não ilustrado); e uma interface 308 para o podem externo 316 e impressora 315. Em algumas implantações, o modem 316 pode ser incorporado dentro do módulo de computador 301, por exemplo, dentro da interface 308. O módulo de computador 301 também tem uma interface de rede local 311, que permite acoplamento do sistema de computador 300 por meio de uma conexão 323 a um rede de comunicações de área local 322, conhecida como um Rede de Área Local (LAN). Conforme ilustrado na Figura 3A, a rede de comunicações locais 322 também pode acoplar à rede ampla 320 por meio de uma conexão 324, que incluiriam tipicamente um denominado dispositivo de “barreira de proteção“ ou dispositivo de funcionalidade similar. A interface de rede local 311 pode compreender um cartão de circuito EthernetTM, uma disposição sem fio do tipo BluetoothTM ou uma disposição sem fio do tipo IEEE 802.11; no entanto, inúmeros outros tipos de interfaces podem ser praticadas para interface 311.
[0062] As interfaces de E/S 308 e 313 podem suportar qualquer uma ou conectividade tanto em série quanto paralela, sendo que o formador é tipicamente implantado de acordo com os padrões de Barramento Serial Universal (USB) e têm conectores USB correspondentes (não ilustrados). Dispositivos de armazenamento 309 são fornecidos e incluem tipicamente uma unidade de disco rígido (HDD) 310. Outros dispositivos de armazenamento, tais como uma unidade de disquete e uma unidade de fita magnética (não ilustrada) também podem ser usadas. Uma unidade de disco óptico 312 é tipicamente fornecida para atuar como uma fonte não volátil de dados. Dispositivos de memória portátil, tais como disco óptico (por exemplo CD- ROM, DVD, Disco Blu-rayTM), USB-RAM, unidades de disco externo portáteis, e disquetes, por exemplo, pode ser usadas como fontes apropriadas de dados ao sistema 300. Tipicamente, qualquer um dentre o HDD 310, unidade óptica 312, redes 320 e 322, ou câmera 327 podem ser uma fonte para dados de vídeo a serem codificados, ou, com o visor 314, um destino para dados decodificados de vídeo a serem armazenados ou reproduzidos.
[0063] Os componentes 305 a 313 do módulo de computador 301 se comunicam tipicamente por meio de um barramento intercomunicado 304 e de maneira que resulte em um modo convencional de operação do sistema de computador 300 conhecidos a aqueles na técnica relevante. Por exemplo, o processador 305 é acoplado ao barramento de sistema 304 com o uso de uma conexão 318. De forma similar, a memória 306 e a unidade de disco óptico 312 são acopladas ao barramento de sistema 304 por conexões 319. Exemplos de computadores nos quais as disposições descritas podem ser praticadas incluem IBM-PCs e compatíveis, Sun Sparcstations, Apple MacTM ou similares sistemas de computador.
[0064] Onde for apropriado ou desejado, o codificador 100 e o decodificador 200, assim como métodos descritos abaixo, podem ser implantados com o uso do sistema de computador 300 em que o codificador 100, o decodificador 200 e os processos das Figuras 10 e 11, a serem descritos, podem ser implantados como um ou mais programas de aplicativo de software 333 executáveis dentro do sistema de computador 300. Em particular, o codificador 100, o decodificador 200 e as etapas dos métodos descritos são efetivadas por instruções 331 (consulte a Figura 3B) no software 333 que são realizadas dentro do sistema de computador 300. As instruções de software 331 podem ser formadas como um ou mais módulos de código, cada um para realizar uma ou mais tarefas particulares. O software também pode ser dividido em duas partes separadas, nas quais uma primeira parte e os módulos de código correspondentes realizam os métodos descritos e uma segunda parte e os módulos de código correspondentes gerenciam uma interface de usuário entre a primeira parte e o usuário.
[0065] O software pode ser armazenado em um meio legível em computador, incluindo os dispositivos de armazenamento descritos abaixo, por exemplo. O software é carregado no sistema de computador 300 a partir do meio legível em computador, e então executado pelo sistema de computador 300. Um meio legível em computador que tem tal software ou programa de computador gravado no meio legível em computador é um produto de programa de computador. O uso do produto de programa de computador no sistema de computador 300 efetua preferencialmente um aparelho vantajoso para implantar o codificador 100, o decodificador 200 e os métodos descritos.
[0066] O software 333 é tipicamente armazenado no HDD 310 ou na memória 306. O software é carregado no sistema de computador 300 a partir de um meio legível em computador, e executado pelo sistema de computador 300. Desse modo, por exemplo, o software 333 pode ser armazenado em um meio de armazenamento de disco opticamente legível (por exemplo, CD-ROM) 325 que é lido pela unidade de disco óptico 312.
[0067] Em algumas instâncias, os programas de aplicativo 333 podem ser providos ao usuário codificado em um ou mais CD-ROMs 325 e lido por meio da unidade correspondente 312, ou pode ser alternativamente pode ser lido pelo usuário das redes 320 ou 322. Ainda além disso, o software também pode ser carregado no sistema de computador 300 a partir de mídia legível em computador. A mídia de armazenamento legíveis em computador se refere a qualquer meio de armazenamento tangível não transitório que fornece instruções gravadas e/ou dados ao sistema de computador 300 para execução e/ou processamento. Exemplos de tal mídia de armazenamento incluem disquetes, fita magnética, CD-ROM, DVD, disco Blu-ray, uma unidade de disco rígido, um ROM ou circuito integrado, memória USB, um disco magneto-óptico, ou um cartão legível em computador tal como um cartão PCMCIA e similares, sejam tais dispositivos internos ou externos ou não do módulo de computador 301. Exemplos de mídia de transmissão legível em computador transitória ou não tangível que também podem participar na provisão do software, programas de aplicativo, instruções e/ou dados de vídeo ou dados de vídeo codificados ao módulo de computador 301 incluem canais de transmissão de rádio ou infravermelho assim como uma conexão de rede a outro computador ou dispositivo em rede, e a Internet ou Intranets que incluem transmissões de correio eletrônico e informações registradas em Websites e similares.
[0068] A segunda parte do programas de aplicativo 333 e os módulos de código correspondentes mencionados acima podem ser executados para implantar uma ou mais interfaces gráficas de usuário (GUIs) a serem renderizadas ou de outro modo representadas no visor 314. Através de manipulação tipicamente do teclado 302 e do mouse 303, um usuário do sistema de computador 300 e o aplicativo pode manipular a interface de maneira funcionalmente adaptável para fornecer comandos de controle e/ou entrada aos aplicativos associados à(s) GUI(s). Outras formas de interfaces de usuário funcionalmente adaptáveis também podem ser implantadas, tais como uma interface de áudio que utiliza indicações por voz emitidas por meio dos alto-falantes 317 e comandos por voz de usuário inseridos por meio do microfone 380.
[0069] A Figura 3B é um diagrama em bloco esquemático detalhado do processador 305 e uma “memória” 334. A memória 334 representa uma agregação lógica de todos os módulos de memória (incluindo o HDD 309 e memória semicondutora 306) que pode ser acessada pelo módulo de computador 301 na Figura 3A.
[0070] Quando o módulo de computador 301 é inicialmente iniciado, um programa de teste de inicialização (power-on self-test - POST) 350 é executado. O programa de POST 350 é tipicamente armazenado em um ROM 349 da memória semicondutora 306 da Figura 3A. Um dispositivo de hardware tal como o ROM 349 que armazena o software é algumas vezes denominado como firmware. O programa de POST 350 examina o hardware dentro do módulo de computador 301 para garantir funcionamento apropriado e verifica tipicamente o processador 305, a memória 334 (309, 306), e um modulo de software de sistemas de entrada-saída básicos (BIOS) 351, também tipicamente armazenado na ROM 349, para operação correta. Uma vez que o programa de POST 350 foi executado de forma bem sucedida, o BIOS 351 ativa a unidade de disco rígido 310 da Figura 3A. A ativação da unidade de disco rígido 310 faz com que um programa carregador de inicialização 352 que é residente na unidade de disco rígido 310 para execução por meio do processador 305. O mesmo carrega um sistema operacional 353 na memória RAM 306, na qual o sistema operacional 353 começa a operação. O sistema operacional 353 é um aplicativo de nível do sistema, executável pelo processador 305, para cumprir várias funções de alto nível, incluindo gerenciamento de processador, gerenciamento de memória, gerenciamento de dispositivo, gerenciamento de armazenamento, interface de aplicativo de software, e interface de usuário genérica.
[0071] O sistema operacional 353 gerencia a memória 334 (309, 306) para garantir que cada processo ou aplicativo em execução no módulo de computador 301 tenha memória suficiente na qual para execução sem colidir a com memória aplicada a outro processo. Ademais, os diferentes tipos de memória disponíveis no sistema 300 da Figura 3A precisam ser de propriedade usada de modo que cada processo possa ser executado de forma eficaz. Consequentemente, a memória agregada 334 não é destinada a ilustrar como segmentos particulares de memória são alocados (a menos que de outro modo declarado), mas preferencialmente para fornecer uma vista geral da memória acessível pelo sistema de computador 300 e como a mesma é usada.
[0072] Conforme ilustrado na Figura 3B, o processador 305 inclui uma série de módulos funcionais que incluem uma unidade de controle 339, uma unidade lógica aritmética (ALU) 340, e uma memória local ou interna 348, algumas vezes chamada de um memória cache. A memória cache 348 inclui tipicamente uma série de registradores de armazenamento 344- 346 em uma seção registradora. Um ou mais barramentos internos 341 interconectam de modo funcional esses módulos funcionais. O processador 305 também tem tipicamente uma ou mais interfaces 342 para comunicação com dispositivos externos por meio do barramento de sistema 304, com o uso de uma conexão 318. A memória 334 é acoplada ao barramento 304 com o uso de uma conexão 319.
[0073] O programa de aplicativo 333 inclui uma sequência de instruções 331 que podem incluir ramificação condicional e instruções de ciclo. O programa 333 também pode incluir dados 332 que são usados na execução do programa 333. As instruções 331 e os dados 332 são armazenados nos locais de memória 328, 329, 330 e 335, 336, 337, respectivamente. Dependendo do tamanho relativo das instruções 331 e a locais de memória 328-330, uma instrução particular pode ser armazenada em um único local de memória conforme retratado pela instrução mostrada no local de memória 330. Alternativamente, uma instrução pode ser segmentada em uma série de partes em que cada uma das quais é armazenada em um local de memória separado, conforme retratado pelos segmentos de instrução mostrados nos locais de memória 328 e 329.
[0074] Em geral, dá-se ao processador 305 um conjunto de instruções que é executado no mesmo. O processador 305 aguarda por uma entrada subsequente, a qual o processador 305 reage executando-se outro conjunto de instruções. Cada entrada pode ser fornecida a partir de uma ou mais de uma série de fontes, incluindo dados gerados por um ou mais dos dispositivos de entrada 302, 303, dados recebidos de uma fonte externa através de uma das redes 320, 302, dados recuperados de um dos dispositivos de armazenamento 306, 309 ou dados recuperados de um meio de armazenamento 325 inseridos no dispositivo de varredura correspondente 312, todos retratados na Figura 3A. A execução de um conjunto das instruções pode, em alguns casos, resultar na emissão de dados. A execução também pode envolver armazenar dados ou variáveis à memória 334.
[0075] O codificador 100, o decodificador 200 e os métodos descritos usam entrada variáveis 354, que são armazenados na memória 334 em locais de memória correspondentes 355, 356, 357. O codificador 100, o decodificador 200 e os métodos descritos produzem saída variáveis 361, que são armazenadas na memória 334 em locais de memória correspondentes 362, 363, 364. Variáveis Intermediárias 358 podem ser armazenadas em locais de memória 359, 360, 366 e 367.
[0076] Em referência ao processador 305 da Figura 3B, os registradores 344, 345, 346, a unidade lógica aritmética (ALU) 340, e a unidade de controle 339 trabalham em conjunto para realizar sequências de micro-operações necessárias para realizar ciclos de “busca, decodificação e execução” para cada instrução na instrução definida que compõe o programa 333. Cada ciclo de busca, decodificação e execução compreende: (a) uma operação de busca, que busca ou lê uma instrução 331 de um local de memória 328, 329, 330; (b) uma operação de decodificação na qual a unidade de controle 339 determina qual instrução foi buscada; e (c) uma execute operação de execução na qual a unidade de controle 339 e/ou a ALU 340 executam a instrução.
[0077] Doravante, um ciclo adicional de busca, decodificação e execução para a próxima instrução pode ser executado. De forma similar, pode ser realizado um ciclo de armazenamento pelo qual a unidade de controle 339 armazena ou escreve um valor a um local de memória 332.
[0078] Cada etapa ou subprocesso nos processos das Figuras 1 a 17 a serem descritos é associado a um ou mais segmentos do programa 333 e é tipicamente realizado pela seção registradora 344, 345, 347, a ALU 340, e a unidade de controle 339 no processador 305 trabalho em conjunto para realizar os ciclos de busca, decodificação e execução para cada instrução na instrução definida para os segmentos observados do programa 333.
[0079] O codificador 100, o decodificador 200 e os métodos descritos podem ser alternativamente implantados em hardware dedicado tal como um ou mais circuitos integrados que realizam as funções ou subfunções dos métodos descritos. Tal hardware dedicado pode incluir processadores gráficos, processadores de sinal digital, circuitos integrados específicos de aplicativo (ASICs), arranjos de porta programável em campo (FPGAs) ou um ou mais microprocessadores e memórias associadas. O efeito real dos sistemas descritos é o aparelho computadorizado configurado para processar unidades de codificação associadas a um fluxo de bits de dados de vídeo.
[0080] Conforme descrito acima, o codificador de vídeo 100 pode ser implantado como um ou mais módulos de código de software do programa de aplicativo de software 333 residente na unidade de disco rígido 305 e que é controlada em sua execução pelo processador 305. Em particular, o codificador de vídeo 100 compreende módulos 102 a 112, 114 e 115 que podem, cada um, ser implantados como um ou mais módulos de código de software do programa de aplicativo de software 333.
[0081] Embora o codificador de vídeo 100 da Figura 1 seja um exemplo de uma pipeline de decodificação de vídeo de codificação de vídeo de alta eficiência (HEVC), estágios de processamento realizados -pelos módulos 102 a 112, 114 e 115 são comuns a outros codecs de vídeo tais como VC-1 ou H.264/MPEG-4 AVC. O codificador de vídeo 100 recebe dados de quadro não codificados 101 como uma série de quadros que incluem amostras de luminância e crominância. O codificador de vídeo 100 divide cada quadro dos dados de quadro 101 em conjuntos hierárquicos de unidades de codificação (CUs), representáveis, por exemplo, como uma árvore de unidade de codificação (CU).
[0082] O codificador de vídeo 100 opera emitindo-se, a partir de um módulo multiplicador 110, uma matriz de amostras de dados preditos conhecida como uma unidade de predição (PU) 120. Um módulo de diferença 115 emite a diferença entre a unidade de predição (PU) 120 e uma matriz correspondente de amostras de dados recebida dos dados de quadro 101, sendo que a diferença é conhecida como amostras de dados residuais 122.
[0083] Os amostras de dados residuais 122 do módulo de diferença 115 são recebidas por um módulo de transformada 102, que converte a diferença de uma representação espacial a uma representação de domínio de frequência para criar coeficientes de transformada 124 para cada unidade de transformada (TU) na árvore de transformada. Para o padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento, a conversão para a representação de domínio de frequência é implantada com o uso de uma transformada de cosseno discreta modificada (DCT), na qual uma DCT tradicional é modificada para ser implantada com o uso de transferências e adições. Os coeficientes de transformada 124 são então inseridos a uma escala e módulo de quantização 103 e são escalados e quantizados para produzir coeficientes residuais 126. The processo de escala e quantização resulta em uma perda de precisão. Os coeficientes residuais 126 são tomados como entrada a um módulo de escala inversa 105 que reverte o escalamento realizado pela escala e módulo de quantização 103 para produzir coeficientes reescalados de transformada 128, que são versões reescaladas dos coeficientes residuais 126. Os coeficientes residuais 126 também são tomados como entrada a um módulo codificador por entropia 104 que codifica os coeficientes residuais em um fluxo de bits codificado 113. Devido à perda de precisão resultante do módulo de escala e quantização 103, os coeficientes reescalados de transformada 128 não são idênticos aos coeficientes de transformada 124 originais. Os coeficientes reescalados de transformada 128 do módulo de escala inversa 105 são então emitidos a um módulo inverso de transformada 106. O módulo inverso de transformada 106 realiza uma transformada inversa a partir do domínio de frequência ao domínio espacial para produzir uma representação de domino espacial 130 dos coeficientes reescalados de transformada 128 idênticos a uma representação de domínio espacial que é produzido em um decodificador.
[0084] Um módulo de estimativa de movimento 107 produz vetores de movimento 132 comparando-se os dados de quadro 101 aos dados de quadro anteriores armazenados em um módulo de armazenamento temporário de quadro 112 configurado dentro da memória 306. Os vetores de movimento 132 são então inseridos a um módulo de compensação de movimento 108 que produz amostras de referência 134 interpreditas filtrando-se as amostras armazenadas no módulo de armazenamento temporário de quadro 112, levando em consideração um desvio espacial derivado dos vetores de movimento 132. Não ilustrados na Figura 1, os vetores de movimento 132 também são passados como elementos de sintaxe ao módulo codificador por entropia 104 para codificação no fluxo de bits codificado 113. Um módulo de predição de intraquadro 109 produz amostras de referência 136 intrapreditas com o uso de amostras 138 obtidas a partir de um módulo de soma 114, que soma a emissão 120 do módulo multiplicador 110 e a emissão 130 do módulo inverso de transformada 106.
[0085] As unidades de predição (PUs) podem ser codificadas com o uso de métodos de intrapredição ou interpredição. A decisão de usar a intrapredição ou interpredição é tomada de acordo com uma troca de distorção de taxa entre a taxa de bit desejada do fluxo de bits 113 codificado resultante e a quantidade de distorção de qualidade de imagem introduzida tanto pelo método de intrapredição como pelo método de interpredição. Se a intrapredição for usada, um modo de intrapredição é selecionada a partir de um conjunto de modos possíveis, também de acordo com uma troca de distorção de taxa. Um modo de intrapredição é selecionado fora cada unidade de predição. O modelo de teste 5.0 (HM-5.0) de codificação de vídeo de alta eficiência (HEVC) suporta 35 modos de intrapredição, no entanto, nem todos os modos de intrapredição pode ser usados para todo os tamanhos de unidade de predição. Por exemplo, um unidade de predição 8x8 pode ter 35 modos de intrapredição disponíveis para seleção e uma unidade de predição 4x4 pode ter 18 modos de intrapredição disponíveis para seleção em algumas implantações e 19 modos disponíveis para seleção em outras implantações. O módulo multiplicador 110 seleciona tanto as amostras de referência 136 intrapreditas do módulo de predição de intraquadro 109 como as amostras de referência 134 interpreditas do bloco de compensação de movimento 108, dependendo de um modo de predição atual 142, determinado pela lógica de controle não ilustrada mas conhecida na técnica. O modo de predição 142 também é fornecido ao codificador por entropia 104 e, como tal, é usado para determinar ou de outro modo estabelecer a ordem de varredura de unidades de transformada conforme será descrito. Predição de Interquadro usa somente uma ordem de varredura diagonal, enquanto a predição de intraquadro pode usar a varredura diagonal, uma varredura horizontal ou um ordem de varredura vertical.
[0086] O módulo de soma 114 produz uma soma 138 que é inserida em um módulo de filtro de desbloqueio 111. O módulo de filtro de desbloqueio 111 realiza filtragem ao longo dos limites de bloco, produzindo amostras desbloqueadas 140 que são escritas no módulo de armazenamento temporário de quadro 112 configurado dentro da memória 306. O módulo de armazenamento temporário de quadro 112 é um armazenamento temporário com capacidade suficiente para guardar dados de múltiplos quadros passados para referência futura.
[0087] No codificador de vídeo 100, os amostras de dados residuais 122 dentro de uma unidade de transformada (TU) são determinadas constatando-se a diferença entre as amostras de dados dos dados de quadro de entrada 101 e a predição 120 das amostras de dados dos dados de quadro de entrada 101. A diferença fornece uma representação espacial dos coeficientes residuais da unidade de transformada (TU).
[0088] Os coeficientes residuais de uma unidade de transformada (TU) são convertidos ao mapa de significância bidimensional.
[0089] O mapa de significância dos coeficientes residuais na unidade de transformada (TU) é então varrido em uma ordem particular, conhecida como um ordem de varredura, para formar uma lista unidimensional de valores de sinalizador, chamada uma lista de sinalizadores de coeficiente significativo. A ordem de varredura pode ser descrita ou de outro modo especificada por um padrão de varredura, tal como aquele recebido com o modo de predição 142 do módulo de intrapredição 109. O padrão de varredura pode ser horizontal, vertical, diagonal ou em zig-zag. A versão 5 do modelo de teste de codificação de vídeo de alta eficiência (HEVC) realiza varredura em uma direção para trás, no entanto, a varredura em uma direção para frente também é possível. Para as unidades de transformada (TUs)16x16, 32x32, 4x16, 16x4, 8x32 e 32x8, um varredura em dois níveis é definida em que a unidade de transformada (TU) é dividida em um conjunto de sub-blocos, em que cada sub-bloco tem um formato quadrado. Em um nível superior, a varredura é realizada varrendo-se cada nível inferior com o uso de um dispositivo de varredura tal como o dispositivo de varredura esquerdo-inferior diagonal voltado para trás. No nível inferior, também conhecido como o nível de sub-bloco, a varredura também é realizada com o uso de um dispositivo de varredura tal como o dispositivo de varredura esquerdo-inferior diagonal voltado para trás. No modelo de referência HEVC versão 5.0, a operação de varredura inicia um coeficiente residual depois do um último coeficiente significativo (em que “após” ou “depois de” está na direção de um dispositivo de varredura traseiro dos coeficientes residuais) e progride até que um local superior esquerdo do mapa de significância é alcançado. As operações de varredura que têm essa propriedade e que estão de acordo com o modelo de referência HEVC versão 5.0 são conhecido como ‘leitores traseiros’. No Software de referência HEVC versão 5.0, o local do último coeficiente significativo é sinalizado codificando-se coordenadas do coeficiente na unidade de transformada (TU). Aqueles familiarizados com a técnica apreciarão que o uso o adjetivo “ultimo(a)” nesse contexto depende da ordem particular de varredura. O que pode ser o “último” coeficiente residual diferente de zero ou sinalizador de coeficiente significativo de valor um correspondente de acordo com um padrão de varredura pode não ser o “último” de acordo com outro padrão de varredura. A lista de sinalizadores de coeficiente significativo, que indica a significância de cada coeficiente residual anterior ao último coeficiente significativo, é codificada no fluxo de bits. Não é exigido que o último valor de sinalizador de coeficiente significativo seja explicitamente codificado no fluxo de bits devido à codificação anterior do local do último sinalizador de coeficiente significativo implicitamente indicada que esse coeficiente residual foi significativo.
[0090] O agrupamento de coeficientes residuais de valor maior voltado à da unidade de transformada (TU) superior esquerda resulta em sinalizadores de maior significância anteriormente na lista que é significativa, enquanto alguns sinalizadores de significância são constatados posteriormente na lista.
[0091] Conforme descrito acima, o codificador de vídeo 100 também compreende um módulo codificador por entropia 104 que implanta um método de codificação por entropia. O módulo codificador por entropia 104 produz elementos de sintaxe de dados residuais de coeficiente (ou coeficientes residuais) 126 de chegada recebidos do módulo de escala e quantização 103. O módulo codificador por entropia 104 emite fluxo de bits codificado 113 e será descrito em mais detalhes abaixo. Para o padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento, o fluxo de bits codificado 113 é delineado em unidades de camada de abstração de rede (NAL). Cada fatia de um quadro é contida em um unidade NAL.
[0092] Há diversas alternativas para o método de codificação por entropia implantado no módulo codificador por entropia 104. O padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento suporta codificação aritmética binária de contexto adaptativo (CABAC), uma variante de codificação aritmética binária de contexto adaptativo (CABAC) constatada em H.264/MPEG-4 AVC. Um esquema de codificação por entropia alternativo é o codificador por entropia de particionamento de intervalo de probabilidade (PIPE), que é conhecido na técnica.
[0093] Para um codificador de vídeo 100 que suporta múltiplos métodos de codificação de vídeo, um dos métodos de codificação por entropia suportado é selecionado de acordo com a configuração do codificador 100. Além disso, ao codificar as unidades de codificação de cada quadro, o módulo codificador por entropia 104 escreve o fluxo de bits codificado 113 de modo que cada quadro tenha uma ou mais fatias por quadro, com cada fatia contendo dados de imagem para parte do quadro. A produção de uma fatia por quadro reduz os custos associados ao delineamento de cada limite de fatia. No entanto, a divisão do quadro em múltiplas fatias também é possível.
[0094] O decodificador de vídeo 200 da Figura 2 pode ser implantado como um ou mais módulos de código de software do programa de aplicativo de software 333 residente na unidade de disco rígido 305 e que é controlado em sua execução pelo processador 305. Em particular, o decodificador de vídeo 200 compreende módulos 202 a 208 e 210 que podem, cada um, ser implantados como um ou mais módulos de código de software do programa de aplicativo de software 333. Embora o decodificador de vídeo 200 seja descrito em referência a um pipeline de decodificação de vídeo de codificação de vídeo de alta eficiência (HEVC), os estágios de processamento realizados pelos módulos 202 a 208 e 209 são comuns a outros codecs de vídeo que empregam codificação por entropia, tal como H.264/MPEG-4 AVC, MPEG-2 e VC-1.
[0095] Um fluxo de bits codificado, tal como o fluxo de bits codificado 113, é recebido pelo decodificador de vídeo 200. O fluxo de bits codificado 113 pode ser lido da memória 306, a unidade de disco rígido 310, um CD-ROM, um Disco Blu-rayTM ou outro meio de armazenamento legível em computador. Alternativamente, o fluxo de bits codificado 113 pode ser recebido de uma fonte externa tal como um servidor conectado à rede de comunicações 320 ou um receptor de radiofrequência. O fluxo de bits codificado 113 contém elementos de sintaxe codificados que representam dados de quadro a serem decodificados.
[0096] O fluxo de bits codificado 113 é inserido a um módulo decodificador por entropia 202 que extrai os elementos de sintaxe do fluxo de bits codificado 113 e passa os valores dos elementos de sintaxe a outros blocos no decodificador de vídeo 200. Pode haver múltiplos métodos de decodificação por entropia implantados no módulo decodificador por entropia 202, tal como aqueles descritos em referência ao módulo codificador por entropia 104. Os dados de elemento de sintaxe 220 que representam dados residuais de coeficiente são passados a uma escala inversa e módulo de transformada 203 e dados de elemento de sintaxe 222 que representam informações de vetor de movimento são passados a um módulo de compensação de movimento 204. A escala inversa e módulo de transformada 203 realiza escala inversa nos dados residuais de coeficiente para criar coeficientes de transformada reconstruídos. O módulo 203 então realiza um transformada inversa para converter os coeficientes de transformada reconstruídos de uma representação de domínio de frequência a uma representação de domínio espacial, que produz amostras residuais 224, tal como a transformada inversa descrita em referência ao módulo inverso de transformada 106.
[0097] O módulo de compensação de movimento 204 usa os dados de vetor de movimento 222 do módulo decodificador por entropia 202, combinado com os dados de quadro anteriores 226 de um bloco de armazenamento temporário de quadro 208, configurado dentro da memória 306, para produzir amostras de referência 228 interpreditas para uma unidade de predição (PU), que é uma predição de saída decodificada dados de quadro. Quando um elemento de sintaxe indica que a unidade de codificação atual foi codificada com o uso de intrapredição, o módulo de predição de intraquadro 205 produz amostras de referência 230 intrapreditas para a unidade de predição (PU) com o uso de amostras espacialmente vizinhas da unidade de predição (PU). As amostras espacialmente vizinhas são obtidas a partir de uma soma 232 emitida de um módulo de soma 210. O módulo multiplicador 206 seleciona amostras de referência intrapreditas ou amostras de referência interpredita para a unidade de predição (PU) dependendo do modo de predição atual, que é indicado por um elemento de sintaxe no fluxo de bits codificado 113. A matriz de amostras 234 emitida do módulo multiplicador 206 é adicionada às amostras residuais 224 da escala inversa e módulo de transformada 203 pelo módulo de soma 210 para produzir a soma 232 que é então inserido a cada um dentre um módulo de filtro de desbloqueio 207 e o módulo de predição de intraquadro 205. Em contraste ao codificador 100, o módulo de predição de intraquadro 205 recebe um modo de predição 236 do decodificador por entropia 202. O multiplexador 206 recebe um sinal de seleção de predição de predição de intraquadro/Interquadro do decodificador por entropia 202. O módulo de filtro de desbloqueio 207 realiza filtração ao longo dos limites de bloco de dados para suavizar artefatos visíveis ao longo dos limites de bloco de dados. A emissão do módulo de filtro de desbloqueio 207 é escrita no módulo de armazenamento temporário de quadro 208 configurado dentro da memória 306. O módulo de armazenamento temporário de quadro 208 fornece armazenamento suficiente para guardar múltiplos quadros decodificados para referência futura. Quadros decodificados 209 também são emitidos do módulo de armazenamento temporário de quadro 208.
[0098] O codificador por entropia 104 será descrito em referência à Figura 4. Os elementos de sintaxe, tais como coeficientes residuais 401, são inseridos em um módulo binarizador 404. Um tamanho de unidade de transformada (TU) 402 é inserido ao módulo binarizador 404. O tamanho de unidade de transformada (TU), que indica o tamanho da unidade de transformada (TU) que codificada. Um padrão de varredura 403 é inserido no módulo binarizador 404. O módulo binarizador 404 binariza cada elemento de sintaxe em uma sequência de bins. Cada bin compreende um valor de bin 406 e um índice de contexto 405. O valor de bin 406 e o índice de contexto 405 são recebidos por um modelo de contexto 407, que emite um contexto 408, selecionado de acordo com o índice de contexto 405. O contexto 408 é atualizado de acordo com o valor de bin 405. O método para atualizar o contexto 408 está de acordo com o usado pela codificação aritmética binária de contexto adaptativo (CABAC) em H.264/MPEG-4 AVC. Um codificador aritmético binário 409 usa o contexto 408 e o valor de bin 406 para codificar o bin no fluxo de bits codificado 113.
[0099] O decodificador por entropia 202 será descrito em referência à Figura 5. Um tamanho de unidade de transformada (TU) 502 e um padrão de varredura 501 são recebidos por um módulo binarizador inverso 503. O módulo binarizador inverso 503 emite coeficientes residuais 509 realizando-se a operação do módulo binarizador reversa 404. Um índice de contexto 504 é emitido do módulo binarizador inverso 503 para cada bin a ser decodificado. Um modelo de contexto 505 emite um contexto 506 selecionado pelo índice de contexto 504. Um decodificador aritmético binário 507 decodifica um valor de bin 508 do fluxo de bits codificado 113 com o uso de o contexto 506. O valor de bin 508 é recebido pelo modelo de contexto 505 e usado para atualizar o contexto 506. O valor de bin 508 também é recebido pelo módulo binarizador inverso 503.
[00100] Uma maior unidade de codificação (LCU) exemplificadora 600 será descrita em referência à Figura 6A. A maior unidade de codificação (LCU) 600 tem um formato quadrado de amostras luma 64x64. A maior unidade de codificação 600 é subdividida de forma recursiva em uma unidade de codificação 1 601 à unidade de codificação 10 608. A divisão da maior unidade de codificação (LCU) 600 faz uso de níveis de hierarquia, que permitem a repartição recursiva de uma região que contém a maior unidade de codificação (LCU) em quatro regiões não sobrepostas, de formato quadrado de mesmo tamanho, em que cada uma tem metade das dimensões vertical e horizontal da região pai e, em conjunto, ocupam completamente a área da região pai. Uma vez que uma região não é mais subdividida em regiões menores, há uma unidade de codificação que ocupa completamente a região. Em um nível particular de subdivisão, o tamanho de região se torna igual a um tamanho conhecido como uma menor unidade de codificação (SCU), em cujo ponto a subdivisão adicional não é possível ou pode ser de outro modo proibida por convenção ou praticidade. Para o padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento, o tamanho de menor unidade de codificação (SCU) é configurado como amostras luma 8x8. Cada unidade de codificação tem um dentre diversos tamanhos possíveis, tal como a unidade de codificação 1 601 que tem tamanho 32x32, uma unidade de codificação 2 602 que tem 16x16 e uma unidade de codificação 4 603 que tem 8x8. Outros tamanhos de unidade de codificação também são possíveis, dependendo do tamanho selecionado da maior unidade de codificação (LCU) e do tamanho de menor unidade de codificação (SCU) usado no padrão de codificação de vídeo de alta eficiência (HEVC) sob desenvolvimento.
[00101] A subdivisão da maior unidade de codificação (LCU) 600 será adicionalmente descrita em referência à Figura 6B. Aqui, em uma região da maior unidade de codificação (LCU) 604, uma repartição ocorre, dividindo a região da maior unidade de codificação (LCU) em quatro regiões igualmente dimensionadas, tal como uma região 605. Uma próxima repartição é usada para gerar quatro regiões adicionais menores, tal como a região 607. Uma vez que o tamanho de região alcança as dimensões da menor unidade de codificação (SCU), tal como uma região 606, nenhuma repartição adicional é possível. Em cada região em que nenhuma repartição adicional ocorre, uma unidade de codificação ocupa completamente a região.
[00102] A maior unidade de codificação (LCU) 604 da Figura 6B também pode ser representada como um árvore de codificação hierárquica 630 conforme mostrado na Figura 6C. Ao usar um árvore hierárquica para representar a maior unidade de codificação (LCU), cada uma das unidades de codificação formará nós folha, enquanto regiões que contêm regiões adicionalmente subdivididas formarão nós não folha. O nó de raiz 632 da árvore 630 é baseado na região 604 da Figura 6B e está em um nível que representa 64x64 amostras. Abaixo, o nó de raiz é uma segunda camada que representa regiões de 32x32 amostras, tal como região 605. A unidade de codificação 1 da Figura 6A é representada como nó de folha 634 enquanto a região que contém unidades de codificação 2 a 8 é representada pelo nó de não folha 640. As regiões de tamanho 16x16 são conhecidas em um terceiro nível da árvore 630 com nó de folha 636 que representa a unidade de codificação 2 e a região 607 da Figura 6B é representada como nó de não folha 642. A quarta e final camada da árvore 630 representa regiões de tamanho 8x8, tal como região 606 que contém a unidade de codificação 4 603, que é representada pelo nó de folha 638. Torna-se evidente, com base no supracitado, que o tamanho de das unidades de codificação na árvore diminui à medida que a profundidade da árvore aumenta.
[00103] Conforme será descrito em mais detalhes abaixo, um sinalizador repartido é usado para indicar que uma região é um nó de folha na maior unidade de codificação (LCU). A árvore de codificação 630 pode ser considerada como um modo para representar uma estrutura de codificação da maior unidade de codificação (LCU).
[00104] Um fluxo de bits 700 que codifica a maior unidade de codificação (LCU) 600 de maneira convencional será descrito em referência às Figuras 6 e 7. À medida que um quadro de imagem de vídeo pode ter muitas maiores unidades de codificação (LCUs) por fatia, um fluxo de bits codificado, tal como fluxo de bits codificado 113, pode compreender muitas instâncias de fluxo de bits 700 conhecidos na Figura 7. A Figura 7 adota uma convenção para representar elementos de sintaxe binarizados codificados de modo que segmentos marcados ‘S’ contenham um sinalizador repartido aritmeticamente codificado, segmentos marcados ‘A’ contenham um ou mais elemento de sintaxe binarizado aritmeticamente codificado ou porção(ões) do mesmo, segmentos marcados ‘B’ contenham um ou mais elementos de sintaxe binarizados codificados de desvio ou porção(ões) da mesma, e segmentos marcados ‘A, B’ contenham um ou mais elementos de sintaxe binarizados codificados com o uso de uma mistura de codificação aritmética e codificação por desvio. O fluxo de bits 700 representa uma porção do fluxo de bits codificado 113, as fatias consistem tipicamente em múltiplas maiores unidades de codificação (LCUs) concatenadas entre si. Para quadro tamanhos que não são múltiplos de número inteiro das dimensões de LCU, a inferência de sinalizadores repartidos evita que o limite de quadro passe através de uma unidade de codificação. As unidades de codificação que estariam fora do limite de quadro não são codificados em um fluxo de bits. A unidade de codificação 1 601 é codificada no fluxo de bits 700 em um componente de fluxo de bits 1 701. A unidade de codificação 2 à unidade de codificação 10 são de codificadas de forma similar no fluxo de bits 700 em um componente de fluxo de bits 2 a um componente de fluxo de bits 10.
[00105] Um sinalizador repartido é usado para indicar que uma região é repartida, com um valor de sinalizador de 1 que indica que a região é repartida enquanto um valor de sinalizador de 0 indica que a região não é repartida. As regiões que são repartidas são subdivididas em quatro regiões menores não sobrepostas igualmente dimensionadas, que ocupam coletivamente a totalidade da região pai. Qualquer região que tem tamanho igual à menor unidade de codificação (SCU) predeterminada terá um valor 0 inferido para que o sinalizador repartido indique que a região não é subdividida. Qualquer região que seja maior do que o tamanho das menores unidades de codificação exige que um sinalizador repartido seja codificado.
[00106] UM sinalizador repartido 709 indica que a região 604 da maior unidade de codificação (LCU) 600 é dividida em quatro 32x32 regiões, tal como a região 605. Um sinalizador repartido 710 indica que região 605 não adicionalmente dividida. A unidade de codificação 4 603 é uma menor unidade de codificação (SCU) então a repartição adicional não é possível. Portanto, os sinalizadores repartidos não são codificados para cada uma das unidades de codificação 4 a 7. No entanto, há um valor um sinalizador repartido para indicar que uma região 607 é subdividida. O sinalizador repartido 711 para a região 607 está localizado antes da unidade de codificação 4 603.
[00107] O componente de fluxo de bits 1 701 contém elementos de sintaxe binarizados com o uso de uma mistura de codificação aritmética e codificação por desvio. Um modo de predição aritmeticamente codificado 703 determina se a unidade de codificação 1 601 usa interpredição ou intrapredição. Se a unidade de codificação usar intrapredição, um sinalizador de modo mais provável aritmeticamente codificado 704 codifica se um modo mais provável para intrapredição for usado ou um esquema alternativo para codificar o modo de intrapredição for usado. Se um modo mais provável está em uso, um desvio de código de modo de intrapredição 705 codifica um índice de modo mais provável com um comprimento de um bit. O índice de modo mais provável determina qual dentre os dois modos predeterminados mais prováveis de intrapredição é usado para a unidade de codificação. Se um modo mais provável não for usado, o código de modo de intrapredição 705 codifica um modo remanescente que especifica um modo de intrapredição para a unidade de codificação. O código de modo de intrapredição 705 pode ter um comprimento de 5 ou 6 bits para o modo remanescente. Um bloco de dados 706 usa codificação aritmética e por desvio para uma ou mais unidades de transformada dentro da unidade de codificação 601. O componente de fluxo de bits 1 701 contém todos os elementos de sintaxe exigidos para decodificar a unidade de codificação 1. De modo similar, os componentes de fluxo de bits 2-10 contêm os elementos de sintaxe exigidos para decodificar as unidades de codificação 2-10 respectivamente.
[00108] UM fluxo de bits 800 de acordo com a presente revelação que codifica a maior unidade de codificação (LCU) 600 será descrito em referência às Figuras 6 e 8. A Figura 8 adota a convenção da Figura 7 para representar elementos de sintaxe binarizados codificados. O fluxo de bits 800 representa uma porção do fluxo de bits codificado 113 que codifica a maior unidade de codificação (LCU) 600. O fluxo de bits 800 tem três porções que podem ser observado em um primeiro nível de detalhe 820, que é um primeiro bloco de dados aritmeticamente codificado 801 que agrupa informações acerca da estrutura de unidade de codificação das unidades de codificação 1 a 10, um segundo bloco de dados 802 codificado por desvio que agrupa informações acerca dos modos de intrapredição paras unidades de codificação 1-10, e um terceiro bloco de dados 803 que contém dados codificados tanto aritmeticamente quanto por desvio e agrupa informações para dados residuais paras unidades de codificação 1-10. Diferente do fluxo de bits 700, cada uma dentre as três porções do fluxo de bits 800 podem conter informações acerca das unidades de codificação 1 a 10.
[00109] O primeiro bloco de dados aritmeticamente codificado é preferencialmente usado para armazenar sinalizadores repartidos, modo de predição, e quando a intrapredição está em uso, informações de modo mais provável paras unidades de codificação 1 a 10 conforme exigido. O primeiro bloco de dados é ilustrado em mais detalhes em um segundo nível de detalhe 830 do fluxo de bits 800 na Figura 8. Conforme mostrado no segundo nível de detalhe 830, um primeiro sinalizador repartido 813 tem um valor de 1 para indicar que a região 604 da maior unidade de codificação (LCU) 600 é dividida em quatro regiões 32x32, tal como a região 605. Um sinalizador repartido 807 tem um valor de 0 para indicar que a região 605 tem não tem mais divisões. Um modo de predição 808 codifica um valor para indicar se a unidade de codificação 1 usa interpredição ou intrapredição. Quando a unidade de codificação 1 usa intrapredição, um sinalizador de modo mais provável 809 indica se tanto um modo mais provável ou um modo remanescente foi usado para intrapredição da unidade de codificação. Instâncias adicionais de sinalizadores repartidos, valores de modo de predição e sinalizadores de modo mais provável são codificados em uma porção de fluxo de bits 804 para representar unidades de codificação 2-10 da maior unidade de codificação (LCU) 600. Primeiro, o sinalizador repartido 813, o sinalizador repartido 807, modo de predição 808, o sinalizador de modo mais provável 809 e a porção de fluxo de bits 804 formam, todos, parte de porção de fluxo de bits 801 que pode consistir exclusivamente em elementos de sintaxe aritmeticamente codificados.
[00110] O segundo bloco de dados 802 contém dados de desvio 810 que estão presentes no fluxo de bits 800 quando a unidade de codificação 1 601 usa intrapredição. Quando a intrapredição está em uso e o sinalizador de modo mais provável 809 indica que o modo mais provável é usado, os dados de desvio 810 são um índice que codifica o uso de um dos dois modos mais prováveis. O índice ocupa um comprimento fixo de um bit. Alternativamente, quando a intrapredição é usada e o sinalizador de modo mais provável 809 indica que modo remanescente é usado, os dados de desvio 810 são um índice que codifica o uso de um dentre 33 diferentes modos de intrapredição restantes (do 35 possíveis modos de intrapredição, os dois modos mais prováveis são excluídos, deixando 33 modos remanescentes). Nesse caso, os dados de desvio 810 têm um comprimento tanto de 5 ou 6 bits, dependendo do modo de intrapredição codificado. O comprimento ou tamanho dos dados de desvio 810 pode ser determinado dos primeiros 5 bits de dados de desvio 810, estabelecidos pela estrutura de unidade de codificação. É possível determinar se o sexto bit é exigido a partir do fluxo de bits após a inspeção dos primeiros 5 bits. Quando interpredição está em uso para a unidade de codificação 1 601, os dados de desvio 810 são omitidos do fluxo de bits 800. Instâncias adicionais de dados de desvio 810 estão presentes paras unidades de codificação 2-10 em um bloco de dados 805 de desvio se pelo menos uma das unidades de codificação 2-10 usa intrapredição. Um bloco de dados 802 de desvio codifica dados de desvio 810 e o bloco de dados 805 de desvio quando exigido.
[00111] O terceiro bloco de dados 803 é conhecido em mais detalhes como bloco de dados aritméticos e codificados por desvio 811. Os bloco de dados 811 codifica uma ou mais unidades de transformada dentro da unidade de codificação 1 601 que contém coeficientes residuais para as unidades de transformada que podem ser usadas com a modo de predição informações para gerar dados de vídeo. Um extremidade aritmeticamente codificada do sinalizador de fatia 812 está presente nas mesmas condições conforme descrito em referência à Figura 7.
[00112] Um método 900 para decodificar o fluxo de bits 800 será descrito em referência às Figuras 6, 8 e 9. O método 900 recebe o fluxo de bits 800 e processa os três blocos de dados para permitir a decodificação das unidades de codificação no fluxo de bits 800. O método 900 com um etapa de determinação do valor de sinalizador repartido 901 em que um valor de um sinalizador repartido, tal como sinalizador repartido 807 é determinado. Quando a unidade de codificação é maior do que uma menor unidade de codificação (SCU) o valor de sinalizador repartido é determinado decodificando-se um sinalizador repartido a partir do fluxo de bits 800. Quando a unidade de codificação tem tamanho igual ao menor unidade de codificação (SCU), tal como a unidade de codificação 4 606, então deduz-se que o valor de sinalizador repartido seja zero.
[00113] O valor do sinalizador repartido é então usado para determinar se a estrutura de unidade de codificação está atualmente em um nó de folha. Se o valor de sinalizador repartido for zero, uma etapa de teste de nó de folha 902 passa o controle a uma etapa de modo de predição de unidade de codificação 903. De outro modo, a etapa de teste de nó de folha 902 passa o controle de volta à etapa de determinação do valor de sinalizador repartido 901, com a profundidade da árvore de codificação aumentada para indicar uma região em um nível abaixo do nível presente na árvore de codificação, tal como a árvore 630 descrita acima em relação à Figura 6B. As regiões são processadas em uma ordem de varredura de quadriculação pelo processamento da árvore de codificação de primeira maneira de profundidade. O Uso da ordem de varredura de quadriculação garante que as unidades de codificação 110 na Figura 6A sejam processadas em ordem.
[00114] A etapa de modo de predição de unidade de codificação 903 determina um valor de modo de predição. O valor de modo de predição é determinado decodificando um modo de predição, tal como modo de predição 808. O modo de predição especifica tanto o modo de predição usado para a unidade de codificação e o modo de partição usado para dividir a unidade de codificação em uma ou mais unidades de predição. Os modos de partição possíveis são NxN ou 2Nx2N. Se o modo de partição for NxN, então, a unidade de codificação é repartida em 4 unidades de predição, cada uma com um modo de predição. Se o modo de partição for 2Nx2N, então, a unidade de codificação conterá apenas uma unidade de predição. Os modos de partição NxN e 2Nx2N resultam em unidades de predição que têm um formato quadrangular. Outros modos de partição também são possíveis, por exemplo, 2NxN e Nx2N, resultando em unidades de predição em formato retangular. Observa-se que a intrapredição ou a interpredição é especificada no nível de unidade de codificação, então para NxN, todas as quatro unidades de predição serão de intrapredição, entretanto, cada unidade de predição pode ter um modo de intrapredição diferente, portanto, cada unidade de predição tem sinalizadores de modo mais provável (MPM) e modo de predição separados. Embora o método 900 seja, em geral, descrito em relação a cada unidade de codificação que tem uma única unidade de predição, o método 900 pode ser estendido para incluir unidades de codificação que contêm múltiplas unidades de predição.
[00115] Quando o valor de sinalizador repartido for zero e o valor de modo de predição para a unidade de codificação especificar a intrapredição, uma etapa de sinalizador MPM 904 determina um valor de sinalizador de modo mais provável. O valor de sinalizador de modo mais provável é determinado decodificando um sinalizador de modo mais provável, tal como sinalizador de modo mais provável 804 da Figura 8. Uma etapa de teste de mais nós 905 determina se a última unidade de codificação na maior unidade de codificação (LCU) foi encontrada. Se sim, o controle passa para uma etapa de modo de intrapredição de determinação 906. Se não, o controle retorna à etapa de valor de sinalizador repartido de determinação 901.
[00116] Para uma unidade de codificação de intrapredição 32x32, tal como a unidade de codificação 1601 da Figura 6, a unidade de codificação pode conter tanto uma, duas ou quatro unidades de predição, dependendo do modo de partição da unidade de codificação. As etapas 906 e 907 iteram sobre a estrutura de unidade de codificação que foi determinada nas etapas 901 a 905. A etapa de modo de intrapredição de determinação 906 determina o modo de intrapredição para uma unidade de predição conforme a seguir. Se o valor de sinalizador de modo mais provável para uma unidade de predição indicar que um modo mais provável foi usado, então, um valor de índice de modo mais provável de um bit é decodificado a partir do fluxo de bit 800 com o uso de decodificação por desvio. Um valor de índice de modo mais provável de um bit indica qual dos dois modos mais prováveis possíveis está em uso. De outra maneira, o valor de sinalizador de modo mais provável indica uso de um modo remanescente e um valor de modo remanescente é decodificado a partir do fluxo de bit 800 com o uso de decodificação por desvio. O número de valores de modo de intrapredição válidos, e a faixa do código de comprimento variável, é dependente do tamanho da unidade de predição. Dos modos de intrapredição disponíveis para um dado tamanho de unidade de predição, o número de modos remanescentes é igual ao número de modos mais prováveis subtraído do número de modos disponíveis. Quando o número de modos remanescentes é uma potência de dois, o modo remanescente pode usar um código de comprimento fixo, de outra maneira, um código de comprimento variável é usado. Por exemplo, uma unidade de predição 4x4 intrapredita com 18 modos de intrapredição disponíveis e dois modos mais prováveis tem 16 modos remanescentes e, portanto, pode usar um código de quatro bits para codificar o modo remanescente. Alternativamente, uma unidade de predição 4x4 intrapredita com 19 modos de intrapredição disponíveis e dois modos mais prováveis tem 17 modos remanescentes e, portanto, pode usar um código de quatro ou cinco bits para codificar o modo remanescente. Para uma unidade de predição 8x8 intrapredita com dois modos mais prováveis tem 33 modos remanescentes e, portanto, pode usar um código de comprimento variável tanto de cinco quanto seis bits. Em uma implantação, o código de comprimento variável é decodificado lendo pelo menos um número suficiente de bins para determinar um comprimento do código de comprimento variável usado para o modo remanescente. Para tais unidades de predição, é possível decodificar cinco bits para determinar se um sexto bit é necessário ser decodificado. Como resultado, uma segunda leitura pode ser realizada para decodificar a porção subsequente do modo remanescente com base nos bits suficientes decodificados. Uma implantação alternativa introduz um sinalizador de modo remanescente codificado aritmeticamente, codificado após o sinalizador de modo mais provável, indicando que a unidade de predição usa um modo remanescente predeterminado. Se o modo remanescente predeterminado, por exemplo ‘intrapredição plana’, não estiver em uso, um dos outros modos remanescentes é codificado com o uso do elemento de sintaxe de modo remanescente codificado por desvio. Por exemplo, se uma unidade de predição 4x4 intrapredita tiver 19 modos disponíveis, com dois modos mais prováveis e um dos modos remanescentes predeterminados, 16 outros modos remanescentes existirão, os quais podem ser codificados com o uso de um elemento de sintaxe de modo remanescente de quatro bits de comprimento fixo. Além disso, se uma unidade de predição 8x8 intrapredita tiver 35 modos disponíveis, com dois modos mais prováveis e um modo remanescente predeterminado, 32 outros modos remanescentes existirão, os quais podem ser codificados com o uso de um elemento de sintaxe de modo remanescente de cinco bits de comprimento fixo. Em que o número de modos remanescentes ou outros modos remanescentes é uma potência de dois, um código de comprimento fixo é suficiente para codificar o modo remanescente ou outro modo remanescente usado. O modo de intrapredição para a unidade de predição é, então, determinado com o uso do valor de sinalizador de modo mais provável e um tanto do valor de índice de modo mais provável quanto do valor de modo remanescente. Alternativamente, o sinalizador de modo remanescente predeterminado e opcionalmente o outro modo remanescente são usados para determinar o modo de intrapredição para a unidade de predição. Em que múltiplos códigos de comprimento variáveis são concatenados, é possível realizar uma leitura do comprimento mínimo dos códigos combinados para determinar se leituras adicionais são necessárias para completar decodificação dos códigos. O fluxo de bit 800 pode codificar cada uma das porções de comprimento mínimo dos modos remanescentes de comprimento variável de modo adjacente no segundo bloco de dados 802 e, então, codificar qualquer dados remanescentes dos modos remanescentes de comprimento variável no segundo bloco de dados 802. Com o uso dessa codificação, é possível para implantações ler todas as porções de comprimento mínimo em uma leitura e determinar o comprimento dos dados remanescentes para completar a leitura dos modos remanescentes de comprimento variável.
[00117] Uma etapa de teste de mais nós 907 determina se há mais nós da árvore de codificação que precisam ter o modo de intrapredição dos mesmos determinado. O resultado da execução da etapa 907 é que a etapa de modo de intrapredição de determinação 906 itera sobre todos os nós da maior unidade de codificação (LCU).
[00118] Uma etapa de dados residuais de decodificação 908 decodifica o terceiro bloco de dados 803. A etapa de dados residuais de decodificação 908 decodifica cada uma das unidades de transformada para unidades de codificação 1-10 na maior unidade de codificação (LCU) 600. Como cada unidade de transformada é decodificada, o módulo de transformada e escala inversa 203 converte os dados residuais a partir do domínio de frequência para o domínio espacial para produzir as amostras residuais 224. Com o uso do modo de intrapredição, o módulo de predição de intraquadro 205 determina a predição 234 para cada unidade de predição. As etapas adicionais para decodificar a maior unidade de codificação (LCU) 600 estão de acordo com a operação descrita na Figura 2.
[00119] Um método 1000 para decodificar o fluxo de bit 800 será descrito com referência à Figura 10. O método 1000 se inicia com uma etapa de estrutura de unidade de codificação de determinação 1001 que constrói uma estrutura de unidade de codificação para representar a divisão de uma maior unidade de codificação (LCU) em múltiplas unidades de codificação com base nas informações de sinalizador repartido no primeiro bloco de dados codificados aritmeticamente 801. Outras informações sobre as unidades de codificação são também determinadas a partir do primeiro bloco de dados 801. As informações incluem um valor de modo de predição para a unidade de codificação e sinalizadores MPM para qualquer unidade de predição da unidade de codificação. Detalhe adicional de como isso é realizado é descrito acima na Figura 9 na etapa de valor de sinalizador repartido de determinação 901, a etapa de nó folha 902, a etapa de valor de modo de predição de unidade de codificação de determinação 903, a etapa de valor de sinalizador MPM de unidade de predição de determinação 905, e a etapa de mais nós 906.
[00120] A seguir, uma etapa de dados codificados de desvio de decodificação 1002 decodifica o segundo bloco de dados codificados por desvio 802. O segundo bloco de dados codificados por desvio 802 fornece informações sobre os modos de intrapredição usados para cada uma das unidades de codificação intrapredita da maior unidade de codificação (LCU). A etapa de dados codificados de desvio de decodificação 1002 é descrita com mais detalhes na etapa de modo de intrapredição de determinação 906 e a etapa de mais nós 907 da Figura 9, descrita acima.
[00121] O método 1000, então, prossegue para uma etapa de dados residuais de decodificação 1003 em que os dados residuais são decodificados a partir do terceiro bloco de dados 803. Conforme descrito acima, o terceiro bloco de dados 803 contém dados que são codificados tanto aritmeticamente quanto por desvio. A decodificação da etapa de dados residuais 1003 é descrita com mais detalhe na etapa de dados residuais de decodificação 908 da Figura 9 acima.
[00122] Por fim, uma etapa de unidades de codificação de forma 1004 combina o modo de intrapredição a partir da etapa de dados codificados de desvio de decodificação 1002 e os dados residuais da etapa de dados residuais de decodificação 1003 para formar unidades de codificação decodificadas, conforme descrito em relação à Figura 2. Uma vez que uma unidade de codificação decodificada for formada, o modo de intrapredição e os dados residuais podem ser combinados para formar parte de um quadro de vídeo decodificado.
[00123] Embora o método 1000 tenha sido descrito em relação ao método 900 da Figura 9, o método também pode incluir outros métodos tal como o método 1400 da Figura 14 e o método 1700 da Figura 17 que serão descritos abaixo.
[00124] Um método 1100 para codificar o fluxo de bit 800 será descrito agora com referência à Figura 11. O método 1100 codifica o fluxo de bit 800 e produz os três blocos de dados para possibilitar decodificação das unidades de codificação no fluxo de bit 800. O método 1100 inicia com uma etapa de valor de sinalizador repartido de codificação 1101 em que um valor de um sinalizador repartido, tal como sinalizador repartido 807, é codificado. As regras que governam a localização dos sinalizadores repartidos são discutidas com mais detalhe acima em relação às Figuras 6A e 6B. Quando uma unidade de codificação for maior do que uma menor unidade de codificação (SCU) um sinalizador repartido codifica o valor de sinalizador repartido apropriado no fluxo de bit 800. Entretanto, o sinalizador repartido não é codificado quando a unidade de codificação é igual em tamanho à menor unidade de codificação (SCU), tal como unidade de codificação 4606 da Figura 6B.
[00125] Se o valor de sinalizador repartido for zero, uma etapa de teste de nó folha 1102 passa controle para uma etapa de valor de modo de predição de unidade de código de codificação 1103 como o zero do sinalizador repartido indica que a unidade de codificação atual é um nó folha da árvore de codificação. Se o nó atual da árvore de codificação for um nó não folha, então, a etapa de teste de nó folha 1102 passa controle de volta para a etapa de valor de sinalizador repartido de codificação 1101, com a profundidade da árvore de codificação aumentada para uma região a um nível abaixo de um nível presente na árvore de codificação, tal como a árvore 630 descrita acima em relação à Figura 6C. Conforme com o método 900 da Figura 9, as regiões são processadas em uma ordem de varredura de quadriculação processando a árvore de codificação em um primeiro modo de profundidade. O uso da ordem de varredura de quadriculação garante que as unidades de codificação 1-10 na Figura 6A sejam processadas na ordem.
[00126] Uma etapa de modo de predição de unidade de codificação 1103 codifica um valor de modo de predição. Para fatias contendo tanto unidades de predição interpredita e unidades de predição intrapredita, o modo de predição especifica o tipo de predição usado. Para fatias contendo apenas unidades de predição intrapreditas, o modo de predição não é codificado no fluxo de bit codificado 113. De um modo similar ao método 900 da Figura 9, o modo de predição especifica tanto o modo de predição usado para a unidade de codificação e o modo de partição. Embora o método 1100 seja descrito em relação a uma unidade de codificação com uma única unidade de predição, o método pode ser estendido para incluir unidades de codificação que contêm múltiplas unidades de predição.
[00127] Quando o valor de sinalizador repartido é zero e o valor de modo de predição para a unidade de codificação especifica intrapredição, uma etapa de sinalizador MPM de codificação 1104 codifica um valor de sinalizador de modo mais provável. O módulo de predição de intraquadro 109 da Figura 1 determina o modo de intrapredição para uma unidade de predição. O módulo de predição de intrapredição 109 também determina dois modos mais prováveis para intrapredição. Se o modo de intrapredição determinado for igual a um dos modos mais prováveis, o valor de sinalizador de modo mais provável é ajustado para 1, indicando uso de um modo mais provável. De outra maneira, o valor de sinalizador de modo mais provável é ajustado para 0, indicando uso de um modo remanescente. Um sinalizador de modo mais provável, tal como sinalizador de modo mais provável 804 da Figura 8, é codificado como o valor de sinalizador de modo mais provável. Uma etapa de teste de mais nós 1105 determina se a última unidade de codificação na maior unidade de codificação (LCU) foi encontrada. Se sim, o controle passa para uma etapa de dados de desvio de codificação 1106. Se não, o controle retorna para executar a etapa de valor de sinalizador repartido de codificação 1101.
[00128] Para uma unidade de codificação de intrapredição 32x32, tal como unidade de codificação 1601 da Figura 6, a unidade de codificação pode conter tanto uma, duas ou quatro unidades de predição, dependendo do modo de partição da unidade de codificação. A etapa de dados de desvio de codificação 1106 codifica o modo de intrapredição para uma unidade de predição conforme a seguir. Se o valor de sinalizador de modo mais provável para uma unidade de predição indicar que um modo mais provável foi usado, então, um valor de índice de modo mais provável de um bit, indicando qual dos dois modos mais prováveis disponíveis foi selecionado, é codificado no fluxo de bit 800 com o uso de decodificação por desvio. De outra maneira, o valor de sinalizador de modo mais provável indica o uso de um modo remanescente e um valor de modo remanescente é codificado no fluxo de bit 800 com o uso de codificação por desvio. Em que múltiplos valores de índice de modo mais provável ou valores de modo remanescente são concatenados, é possível realizar um registro dos códigos combinados em uma única operação em vez de registrar o código para cada unidade de predição separadamente.
[00129] Uma etapa de teste de mais nós 1107 determina se há mais nós da árvore de codificação que precisam ter o modo de intrapredição dos mesmos determinado. O resultado é que a etapa de dados de desvio de codificação 1106 executa para iterar sobre todos os nós da maior unidade de codificação (LCU). A iteração sobre a etapa de dados de desvio de codificação 1106 e etapa de mais nós 1107 pode ocorrer antes do registro de dados de desvio no fluxo de bit codificado 113 a fim de predeterminar o comprimento dos dados a ser registrado.
[00130] Uma etapa de dados residuais de codificação 1108 codifica o terceiro bloco de dados 803. A etapa de dados residuais de codificação 1108 codifica cada uma das unidades de transformada para unidades de codificação 1-10 na maior unidade de codificação (LCU) 600 no fluxo de bit codificado 113. A fim de codificar cada unidade de transformada, as amostras residuais 122 são transformadas pelo bloco de transformada 102 em coeficientes de transformada 124. O bloco de quantização e escala 103, então, converte os coeficientes de transformada 124 em coeficientes residuais 126. Os coeficientes residuais 126 são codificados por codificador de entropia 104 ao fluxo de bit codificado 113. Etapas adicionais para codificar a maior unidade de codificação (LCU) 600 de acordo com a operação descrita no codificador de vídeo 100 da Figura 1.
[00131] Um método 1200 para codificar o fluxo de bit 800 será descrito com referência à Figura 12. O método 1200 inicia com uma etapa de estrutura de unidade de código de codificação 1201 que codifica uma estrutura de unidade de codificação para representar a divisão de uma maior unidade de codificação (LCU) em múltiplas unidades de codificação codificando informações de sinalizador repartido no primeiro bloco de dados codificado aritmeticamente 801. Outras informações sobre as unidades de codificação também são codificadas no primeiro bloco de dados 801. As informações incluem um valor de modo de predição para a unidade de codificação e sinalizadores MPM para qualquer unidade de predição da unidade de codificação. Detalhe adicional de como isso é feito é descrito acima na Figura 11 na etapa de valor de sinalizador repartido de codificação 1101, na etapa de nó folha 1102, na etapa de valor de modo de predição de unidade de código de codificação 1103, na etapa de valor de sinalizador MPM de unidade de predição de codificação 1105, e na etapa de mais nós 1106.
[00132] A seguir, uma etapa de dados codificados de desvio de codificação 1202 codifica o segundo bloco de dados codificados por desvio 802. O segundo bloco de dados codificados por desvio 802 codifica informações nos modos de intrapredição usados para cada uma das unidades de codificação intrapreditas da maior unidade de codificação (LCU). A etapa de dados codificados de desvio de codificação 1202 é descrita com mais detalhes na etapa de dados de desvio de codificação 1106 e na etapa de mais nós 1107 da Figura 11, descritas acima.
[00133] O método 1200, então, prossegue para uma etapa de dados residuais de codificação 1203 em que os dados residuais são codificados no terceiro bloco de dados 803. Conforme descrito acima, o terceiro bloco de dados 803 contém dados que são codificados tanto aritmeticamente quanto por desvio. A codificação da etapa de dados residuais 1203 é descrita com mais detalhes na etapa de dados residuais de codificação 1108 da Figura 11 acima.
[00134] Uma etapa de blocos de dados de armazenamento 1204 armazena dados codificados aritmeticamente no bloco de dados 801, dados codificados por desvio no bloco de dados 802 e uma mistura de dados codificados aritmeticamente e codificados por desvio no bloco de dados 803 no fluxo de bit codificado 113. A etapa de blocos de dados de armazenamento 1204 pode ser implantada como uma única etapa de armazenamento dos blocos de dados, ou como armazenamento temporário intermediário de dados codificados como os blocos de dados são produzidos pelas respectivas etapas dos mesmos no método 1200.
[00135] Embora o método 1200 tenha sido descrito em relação ao método 1100 da Figura 11, o método também pode incluir outros métodos de codificação relacionados à decodificação tal como método 1400 da Figura 14 e método 1700 da Figura 17 que serão descritos abaixo.
[00136] Um fluxo de bit alternativo 1300 para codificar a maior unidade de codificação (LCU) 600 será descrito com referência à Figura 13. A Figura 13 adota a convenção da Figura 7 para representar elementos de sintaxe binarizados codificados. O fluxo de bit 1300 representa uma porção do fluxo de bit codificado 113 que codifica a maior unidade de codificação (LCU) 600. Um primeiro bloco de dados 1301 tem uma estrutura similar ao primeiro bloco de dados 801 e codifica elementos de sintaxe exclusivamente com o uso de codificação aritmética. O primeiro bloco de dados 1301 é similar ao primeiro bloco de dados 801, como o primeiro bloco de dados 1301 codifica aritmeticamente um valor de modo de predição para uma unidade de codificação com o uso de um modo de predição, tal como modo de predição 1308. Em contraste com o primeiro bloco de dados 801, o primeiro bloco de dados 1301 não codifica um sinalizador de modo mais provável, tal como o sinalizador de modo mais provável 809 do primeiro bloco de dados 801. Em vez disso, um sinalizador de modo mais provável 1309 é codificado em um segundo bloco de dados 1302 com o uso da codificação por desvio. O segundo bloco de dados 1302 usa codificação por desvio exclusivamente para codificar elementos de sintaxe conforme descrito para o segundo bloco de dados 802. A codificação do sinalizador de modo mais provável com codificação por desvio pode permitir a decodificação com uma taxa de transferência maior lendo grupos maiores de bins de desvio em uma única operação de leitura. De um modo similar aos dados de desvio 810, quando um modo de predição 1308 indica uso de intrapredição, o fluxo de bit 1300 inclui dados de desvio 1310 que representa tanto um índice de modo mais provável ou um modo remanescente.
[00137] Uma implantação alternativa será descrita agora em relação ao método 1400 da Figura 14 para decodificar o fluxo de bit alternativo 1300. Uma etapa de valor de sinalizador repartido de determinação 1401, uma etapa de nó folha 1402, uma etapa de valor de modo de predição de unidade de codificação de determinação 1403, e uma etapa de mais nós 1404 operam de modo similar para determinar etapa de valor de sinalizador repartido 901, etapa de nó folha 902, etapa de valor de modo de predição de unidade de codificação de determinação 903, e etapa de mais nós 905 da Figura 9. Em contraste com o método 900, uma etapa que corresponde à etapa de valor de sinalizador MPM de unidade de predição de determinação 904 da Figura 9 não está incluída no conjunto de etapas acima da Figura 14. Em vez disso, a etapa correspondente, sendo a etapa 1405 ocorre posteriormente no método 1400. A etapa de valor de sinalizador MPM de unidade de predição de determinação 1405 determina um valor de sinalizador MPM de unidade de predição de modo similar à etapa correspondente 904 da Figura 9 exceto que um sinalizador de modo mais provável codificado por desvio 1309 é decodificado a partir do fluxo de bit 1300. Uma etapa de modo de intrapredição de determinação 1406, uma etapa de mais nós 1407 e uma etapa de dados residuais de decodificação 1408 operam conforme descrito com referência à etapa de modo de intrapredição de determinação 906, etapa de mais nós 907 e etapa de dados residuais de decodificação 908 da Figura 9.
[00138] Uma maior unidade de codificação exemplificativa (LCU) 1500 da Figura 15 será descrita agora. A maior unidade de codificação (LCU) 1500 tem uma composição idêntica de unidades de codificação 1-10 da maior unidade de codificação (LCU) 600 da Figura 6. Entretanto, em contraste com a maior unidade de codificação (LCU) 600, a maior unidade de codificação (LCU) 1500 inclui um limite de fatia entre uma unidade de codificação 9 1503 e uma unidade de codificação 10 1505 conforme fatias de granularidade fina foram possibilitadas. Assim, as unidades de codificação 1-9 da Figura 15 estão em uma primeira fatia enquanto a unidade de codificação 10 1505 está em uma segunda fatia.
[00139] Um fluxo de bit 1600, mostrado na Figura 16, que codifica a maior unidade de codificação (LCU) 1500 será descrito agora. O fluxo de bit 1600 é codificado com fatias de granularidade fina possibilitadas e o limite de fatia de granularidade fina configurado para limitar limitações de fatia a limitações de unidade de codificação 32x32. Quando as fatias de granularidade fina são possibilitadas, a maior unidade de codificação (LCU) 1500 pode ser repartida em fatias separadas em qualquer região de um tamanho igual a ou que excede o limite de fatia de granularidade fina. Um elemento de sintaxe de extremidade de fatia indica o término de uma fatia. O elemento de sintaxe de extremidade de fatia é codificado após a última unidade de codificação em cada região cujo tamanho é igual ao limite de fatia de granularidade fina. Na Figura 16, há quatro elementos de sintaxe de extremidade de fatia como a maior unidade de codificação 64x64 (LCU) tem um tamanho de limitação de 32x32. O elemento de sinalizador de sintaxe de extremidade de fatia será localizado após as unidades de codificação 1, 8, 9 e 10. É uma exigência que os elementos de sintaxe em uma fatia descrevem completamente as unidades de codificação naquela fatia. Quando as fatias de granularidade fina são possibilitadas, a decisão de repartir a maior unidade de codificação (LCU) 1500 em duas fatias pode ser feita no meio do caminho através da codificação do fluxo de bit 1600. Assim, quando as informações de uma pluralidade de unidades de codificação são agrupadas em um primeiro, segundo e terceiro bloco de dados, as unidades de codificação do grupo pode não se estender além de um sinalizador de extremidade. Um componente de fluxo de bit 1601 compreende elementos de sintaxe para a unidade de codificação 1. Um componente de fluxo de bit 1602 compreende um primeiro bloco de dados 1615, um segundo bloco de dados 1616 e um terceiro bloco de dados 1607 que codificam unidades de codificação 2-8 da Figura 15 contidas na região 607. O primeiro bloco de dados 1615, segundo bloco de dados 1616 e terceiro bloco de dados 1607 que codificam as unidades de codificação 2-8 da Figura 15 são similares ao primeiro bloco de dados 801, segundo bloco de dados 802 e terceiro bloco de dados 803 da Figura 8. Em contraste com o fluxo de bit 800, o agrupamento de elementos de sintaxe em primeiro, segundo e terceiro blocos de dados no fluxo de bit 1600 é restrito ao limite de fatia de granularidade fina. Conforme o limite de fatia de granularidade fatia é ajustado para 32x32, então, as unidades de codificação 1, 9 e 10 não são agrupadas com outras unidades de codificação, enquanto as unidades de codificação 2 a 8 são agrupadas. Um sinalizador de extremidade de fatia 1614 sinaliza que a primeira fatia termina seguindo a unidade de codificação 9 1503, e a segunda fatia começa na unidade de codificação 10 1505 da Figura 15.
[00140] Em uma implantação, o fluxo de bit 1600 codifica um sinalizador de capacitação de fatia de granularidade fina no início de cada maior unidade de codificação (LCU), tal como a maior unidade de codificação (LCU) 1500. Quando as fatias de granularidade fina não são possibilitadas para uma maior unidade de codificação (LCU), o método 900 é aplicado àquela maior unidade de codificação (LCU). Quando as fatias de granularidade fina são possibilitadas para uma maior unidade de codificação (LCU), o método 900 é aplicado para cada unidade de codificação subdividida igual em tamanho ao limite de fatia de granularidade fina.
[00141] Uma implantação alternativa adicional será descrita agora em relação ao método 1700 da Figura 17 para decodificar o fluxo de bit 800. Uma etapa de valor de sinalizador repartido de determinação 1701, uma etapa de nó folha 1702, uma etapa de valor de modo de predição de unidade de codificação de determinação 1703, uma etapa de valor de sinalizador MPM de unidade de predição de determinação 1704, e uma etapa de mais nós 1705 operam de modo similar às etapas correspondentes da Figura 9, sendo a etapa de valor de sinalizador repartido de determinação 901, etapa de nó folha 902, etapa de valor de modo de predição de unidade de codificação de determinação 903, etapa de valor de sinalizador MPM de unidade de predição de determinação 904, e a etapa de mais nós 905. A estrutura de unidade de codificação resultante e informações de modo mais provável são usadas por uma etapa de dados de desvio de leitura 1706 para ler bloco de dados de desvio 802. O comprimento do bloco de dados de desvio 802 é determinado pela estrutura de unidade de codificação e as informações de modo mais provável somando os comprimentos dos índices de modo mais provável e os modos remanescentes. A etapa de dados de desvio de leitura 1706 pode ler o bloco de dados de desvio 802 em uma única operação ou múltiplas operações, mas não é restrita à leitura de informações para uma unidade de predição de cada vez. A quantidade de dados a serrem lidos é o comprimento do bloco de dados de desvio 802 que já está determinado.
[00142] A seguir, uma atribuição de modos de intra predição para etapa de unidade de predição 1707 divide os dados de desvio da etapa de dados de desvio de leitura 1706 e determina o modo de intrapredição para cada unidade de predição. Uma etapa de dados residuais de decodificação 1708 opera conforme descrito com referência à etapa de dados residuais de decodificação 908 da Figura 9.
[00143] Quando o modo remanescente é codificado com o uso de um código de comprimento variável, tal como o código de cinco ou seis bits descrito com referência à Figura 9, o comprimento dos dados codificados de desvio 802 não pode ser determinado antes da etapa de dados de desvio de leitura 1706. Em vez disso, um comprimento mínimo pode ser calculado com base no conhecimento da estrutura de unidade de codificação e nos tamanhos de unidade de predição e valor de sinalizador de modos mais prováveis. O comprimento mínimo pode ser lido a partir do fluxo de bit codificado 113 e analisado para determinar o modo de intrapredição de pelo menos uma das unidades de predição. A análise pode ser aplicada repetidamente até que o comprimento de dados de desvio seja conhecido. Uma ou mais leituras de dados de desvio subsequentes podem ser realizadas para ler a totalidade de dados codificados de desvio 802 a partir do fluxo de bit codificado 113. Embora o código de comprimento variável para técnica de dados de desvio da implantação alternativa descrita acima seja descrita em relação ao método 1700 da Figura 17, a técnica pode ser aplicada durante outros métodos de decodificação descritos acima, tal como o método 900 da Figura 9.
[00144] Quando o sinalizador de modo mais provável é codificado por desvio, uma variação do método 1700 pode operar para excluir a etapa de valor de sinalizador de MPM de unidade de predição de determinação 1704 e incorpora a funcionalidade da etapa de valor de sinalizador de MPM de unidade de predição de determinação 1704 na etapa de leitura de dados de desvio 1706.
[00145] Uma implantação alternativa para consumir dados codificados de desvio de comprimento desconhecido, opera para acessar o fluxo de bit codificado 113 para determinar um segmento de dados, contendo pelo menos alguns dados codificados por desvio. Entretanto, diferente de abordagens previamente descritas, os dados não são consumidos a partir do fluxo de bit. Os índices de modo mais provável e modos remanescentes são decodificados do segmento de dados, e um total em funcionamento é mantido para um comprimento dos dados decodificados. Uma vez que todos os dados codificados por desvio são decodificados a partir do segmento de dados, o comprimento total em funcionamento é, então, consumido do fluxo de bit. O resultado é que o segmento de dados acessa os dados de fluxo de bit além do segundo bloco de dados codificado por desvio 802, mas os dados não são consumidos e, portanto, terceiro bloco de dados aritmético e de desvio 803 está disponível para decodificar pela etapa de dados residuais de decodificação. Embora a técnica de decodificação de código de comprimento variável da implantação alternativa descrita acima seja descrita em relação ao método 1700 da Figura 17, a técnica pode ser aplicada durante outros métodos de decodificação descritos acima, tal como o método 900 da Figura 9.
[00146] Os métodos 900, 1000, 1400 e 1700 quando aplicados ao decodificador de vídeo 200 possibilitam implantações para realizar um aumento na taxa de transferência de análise de um fluxo de bit codificado, tal como fluxo de bit codificado 113. Isso ocorre através da leitura de maiores quantidades de dados codificados por desvio em uma única operação, devido à concatenação de dados codificados por desvio. A taxa de transferência aumentada é mais notável para implantações de hardware em que a leitura ou registro de dados codificados por desvio pode ser conduzido em paralelo para aumentar a taxa de transferência do sistema. Um benefício similar é realizado para codificador de vídeo 100 quando os métodos 1100, 1200, e métodos 1400 e 1700 variados de acordo para realizar codificação, são aplicados para produzir um fluxo de bit codificado.
[00147] O apêndice A que sucede essa descrição detalhada representa modificações que podem ser feitas ao modelo de teste de codificação de vídeo de alta eficiência (HEVC) 5.0 (HM-5.0) para especificar o fluxo de bit 800 da Figura 8 que pode ser decodificado pelo método 900 da Figura 9 descrito acima.
APLICABILIDADE INDUSTRIAL
[00148] As disposições descritas são aplicáveis às indústrias de processamento de dados e computador e, particularmente, para o processamento de sinal digital para codificar uma decodificação de sinais tal como sinais de vídeo.
[00149] A seção precedente descreve apenas algumas modalidades da presente invenção, e as modificações e/ou mudanças podem ser feitas na mesma sem se afastar do escopo e espírito da invenção, sendo que as modalidades são ilustrativas e não restritivas.
[00150] (Austrália apenas) No contexto deste relatório descritivo, a expressão “que compreende” significa “que inclui principalmente, mas não necessariamente sozinho” ou “que tem” ou “que inclui”, e não “que consiste apenas em”. As variações da palavra "compreender", tal como “que compreende” e “que compreendem” têm significados variados de modo correspondente.
APÊNDICE A
[00151] O que vem a seguir representa modificações que podem ser feitas ao modelo de teste de codificação de vídeo de alta eficiência (HEVC) 5.0 (HM-5.0) para especificar o fluxo de bit 800 da Figura 8 que pode ser decodificado através do método 900 da Figura 9 descrito acima.
[00152] SINTAXE DE ÁRVORE DE CODIFICAÇÃO
Figure img0001
Figure img0002
Figure img0003
Figure img0004
[00153] SINTAXE DE ÁRVORE DE CODIFICAÇÃO PARA REPARTIÇÃO E SINALIZADORES DE MPM
Figure img0005
Figure img0006
[00154] SINTAXE DE ÁRVORE DE CODIFICAÇÃO PARA intra modO luma
Figure img0007
Figure img0008
[00155] SINTAXE DE UNIDADE DE CODIFICAÇÃO
Figure img0009
Figure img0010
Figure img0011
[00156] SINTAXE DE UNIDADE DE CODIFICAÇÃO PARA DIVISÃO DE modO E SINALIZADOR MPM
Figure img0012
Figure img0013
[00157] SINTAXE DE UNIDADE DE CODIFICAÇÃO PARA intra modO luma
Figure img0014
[00158] SINTAXE DE UNIDADE DE PREDIÇÃO
Figure img0015
Figure img0016
Figure img0017
Figure img0018
[00159] SINTAXE DE UNIDADE DE PREDIÇÃO PARA SINALIZADOR MPM
Figure img0019
Figure img0020
[00160] SINTAXE DE UNIDADE DE PREDIÇÃO PARA intra modO luma
Figure img0021
Figure img0022
[00161] A sintaxe de árvore de codificação a seguir ilustra a atribuição de elementos de sintaxe aos blocos de dados de acordo com três categorias classificadas 1, 2 e 3.
[00162] SINTAXE DE ÁRVORE DE CODIFICAÇÃO
Figure img0023
Figure img0024
Figure img0025
[00163] SINTAXE DE UNIDADE DE CODIFICAÇÃO
Figure img0026
Figure img0027
Figure img0028
[00164] SINTAXE DE UNIDADE DE PREDIÇÃO
Figure img0029
Figure img0030
Figure img0031
Figure img0032

Claims (3)

1. Método de decodificar pelo menos uma unidade de codificação a partir de um fluxo de bit de dados de vídeo, o método caracterizado pelo fato de que compreende: determinar, a partir de dados no fluxo de bit, uma estrutura de unidade de codificação da pelo menos uma unidade de codificação, usando um sinalizador repartido que indica se uma unidade de codificação é dividida em um modo de partição usado para dividir a unidade de codificação em uma ou mais unidades de predição, o dito modo de partição sendo determinável usando um valor de modo de predição que indica um modo de predição usado para a unidade de codificação (1001); decodificar, de acordo com a estrutura de unidade de codificação determinada, uma pluralidade de sinalizadores de modo mais provável codificado aritmeticamente, que compreende um sinalizador de modo mais provável para cada uma dentre uma pluralidade de unidades de predição na unidade de codificação, a partir de um primeiro bloco de dados codificados de modo adjacente no fluxo de bit (1001); decodificar, de acordo com a estrutura de unidade de codificação determinada, uma pluralidade de partes de dados de codificação de desvio, que compreende uma parte de dados de codificação de desvio para cada uma dentre a pluralidade de unidades de predição na unidade de codificação, a partir de um segundo bloco de dados codificados de modo adjacente no fluxo de bit (1002); determinar um modo de intrapredição para cada uma dentre a pluralidade de unidades de predição de acordo com o sinalizador de modo mais provável e a parte decodificada dos dados codificados de desvio (1002); e decodificar a unidade de codificação a partir do fluxo de bit com o uso dos modos de intrapredição determinados (1003, 1004), em que os dados de desvio codificados contém um índice de modo mais provável ou um valor de modo remanescente.
2. Método de codificar pelo menos uma unidade de codificação em um fluxo de bit de dados de vídeo, o método caracterizado pelo fato de que compreende: codificar, em um fluxo de bit, um sinalizador repartido que indica se uma unidade de codificação é dividida e um valor de modo de predição que indica um modo de predição usado para a unidade de codificação, de modo que uma estrutura de unidade de codificação da pelo menos uma unidade de codificação pode ser determinada usando um modo de partição usado para dividir a unidade de codificação em uma ou mais unidades de predição (1201); codificar aritmeticamente uma pluralidade de sinalizadores mais prováveis, que compreende um sinalizador de modo mais provável para cada uma dentre uma pluralidade de unidades de predição na unidade de codificação para formar um primeiro bloco de dados codificados de modo adjacente no fluxo de bit (1201); codificar, de acordo com a estrutura de unidade de codificação, uma pluralidade de partes de dados codificados de desvio, que compreende uma parte de dados de desvios codificados para cada uma dentre a pluralidade de unidades de predição na unidade de codificação para formar um segundo bloco de dados codificados de modo adjacente no fluxo de bit (1202); e armazenar os primeiro e segundo blocos para codificar modos de intrapredição para a pluralidade de unidades de predição na unidade de codificação no fluxo de bit de dados de vídeo (1204), em que os dados de desvio codificados contém um índice de modo mais provável ou um valor de modo remanescente.
3. Aparelho computadorizado caracterizado pelo fato de ser configurado para processar unidades de codificação associadas com um fluxo de bit de dados de vídeo conforme definido pelo método como definido na reivindicação 1 ou 2.
BR112014012893-6A 2012-01-20 2013-01-18 Método e aparelho para codificar e decodificar uma unidade de codificação BR112014012893B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2012200345A AU2012200345B2 (en) 2012-01-20 2012-01-20 Method, apparatus and system for encoding and decoding the significance map residual coefficients of a transform unit
AU2012200345 2012-01-20
PCT/AU2013/000036 WO2013106888A1 (en) 2012-01-20 2013-01-18 Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit

Publications (2)

Publication Number Publication Date
BR112014012893A2 BR112014012893A2 (pt) 2017-06-13
BR112014012893B1 true BR112014012893B1 (pt) 2023-03-28

Family

ID=48798427

Family Applications (5)

Application Number Title Priority Date Filing Date
BR122020002110-1A BR122020002110B1 (pt) 2012-01-20 2013-01-18 Método e aparelho para codificar e decodificar unidades de codificação a partir de um fluxo de bit de dados de vídeo e meio de armazenamento legível por computador
BR112014012893-6A BR112014012893B1 (pt) 2012-01-20 2013-01-18 Método e aparelho para codificar e decodificar uma unidade de codificação
BR122020002117-9A BR122020002117B1 (pt) 2012-01-20 2013-01-18 Método e aparelho para codificar e decodificar unidades de codificação a partir de um fluxo de bit de dados de vídeo e meio de armazenamento legível por computador
BR122020002118A BR122020002118B8 (pt) 2012-01-20 2013-01-18 Método e aparelho para codificar e decodificar um fluxo de bits de dados de vídeo e meio de armazenamento legível por computador
BR122020002116-0A BR122020002116B1 (pt) 2012-01-20 2013-01-18 Método e aparelho para codificar e decodificar unidades de codificação a partir de um fluxo de bit de dados de vídeo e meio de armazenamento legível por computador

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR122020002110-1A BR122020002110B1 (pt) 2012-01-20 2013-01-18 Método e aparelho para codificar e decodificar unidades de codificação a partir de um fluxo de bit de dados de vídeo e meio de armazenamento legível por computador

Family Applications After (3)

Application Number Title Priority Date Filing Date
BR122020002117-9A BR122020002117B1 (pt) 2012-01-20 2013-01-18 Método e aparelho para codificar e decodificar unidades de codificação a partir de um fluxo de bit de dados de vídeo e meio de armazenamento legível por computador
BR122020002118A BR122020002118B8 (pt) 2012-01-20 2013-01-18 Método e aparelho para codificar e decodificar um fluxo de bits de dados de vídeo e meio de armazenamento legível por computador
BR122020002116-0A BR122020002116B1 (pt) 2012-01-20 2013-01-18 Método e aparelho para codificar e decodificar unidades de codificação a partir de um fluxo de bit de dados de vídeo e meio de armazenamento legível por computador

Country Status (13)

Country Link
US (5) US9736495B2 (pt)
EP (5) EP3288264B1 (pt)
JP (1) JP2015507885A (pt)
KR (5) KR102030952B1 (pt)
CN (6) CN108810539B (pt)
AU (1) AU2012200345B2 (pt)
BR (5) BR122020002110B1 (pt)
ES (5) ES2724203T3 (pt)
HU (5) HUE060411T2 (pt)
PL (5) PL3288264T3 (pt)
RU (5) RU2640737C1 (pt)
TR (1) TR201906188T4 (pt)
WO (1) WO2013106888A1 (pt)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5850214B2 (ja) * 2011-01-11 2016-02-03 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
CN105245894B (zh) * 2011-06-17 2017-08-08 Jvc建伍株式会社 图像解码装置、图像解码方法及接收装置、接收方法
US20160029022A1 (en) * 2014-07-25 2016-01-28 Mediatek Inc. Video processing apparatus with adaptive coding unit splitting/merging and related video processing method
KR101982788B1 (ko) 2014-10-01 2019-05-27 엘지전자 주식회사 향상된 예측 필터를 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
CN105992000B (zh) * 2015-03-06 2019-03-22 扬智科技股份有限公司 影像流的处理方法及其影像处理装置
KR102250070B1 (ko) * 2015-03-23 2021-05-11 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10334248B2 (en) 2015-05-29 2019-06-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
CN115174938A (zh) * 2016-05-10 2022-10-11 三星电子株式会社 用于对图像进行编码/解码的方法及其装置
US10609367B2 (en) * 2016-12-21 2020-03-31 Qualcomm Incorporated Low-complexity sign prediction for video coding
CN106921859A (zh) * 2017-05-05 2017-07-04 郑州云海信息技术有限公司 一种基于fpga的cabac熵编码方法与装置
CN107153588A (zh) * 2017-05-12 2017-09-12 成都优孚达信息技术有限公司 数据编码存储方法
CN109151468B (zh) * 2017-06-28 2020-12-08 华为技术有限公司 一种图像数据的编码、解码方法及装置
KR20230030054A (ko) * 2018-02-09 2023-03-03 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 파티션 기반 인트라 코딩 개념
KR102523702B1 (ko) 2018-07-03 2023-04-19 주식회사 엘지에너지솔루션 배터리 모듈
WO2020012023A1 (en) 2018-07-13 2020-01-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Partitioned intra coding concept
KR20210046804A (ko) * 2018-09-07 2021-04-28 주식회사 비원영상기술연구소 영상 부호화/복호화 방법 및 장치
WO2020071871A1 (ko) * 2018-10-05 2020-04-09 엘지전자 주식회사 영상 서비스 처리 방법 및 그 장치
US11109023B2 (en) * 2018-11-27 2021-08-31 Tencent America LLC Intra mode selection in intra prediction
WO2020108574A1 (en) * 2018-11-28 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Improving method for transform or quantization bypass mode
CN116668674A (zh) * 2018-12-07 2023-08-29 华为技术有限公司 视频译码的约束预测模式
CN115280770B (zh) * 2020-03-26 2023-11-21 阿里巴巴(中国)有限公司 用于对视频进行编码或解码的方法和装置
CN114615507B (zh) * 2022-05-11 2022-09-13 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 一种图像编码方法、解码方法及相关装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US7286710B2 (en) * 2003-10-01 2007-10-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding of a syntax element contained in a pre-coded video signal
US7599435B2 (en) * 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7586924B2 (en) 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
KR100624432B1 (ko) * 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
US7706442B2 (en) 2005-02-15 2010-04-27 Industrial Technology Research Institute Method for coding mode selection of intra prediction in video compression
JP2009510807A (ja) * 2005-07-08 2009-03-12 エルジー エレクトロニクス インコーポレイティド ビデオ信号のコーディング情報を圧縮/展開するためにコーディング情報モデリング方法
CN101218825B (zh) * 2005-07-08 2014-07-09 Lg电子株式会社 用于建模视频信号的编码信息以压缩/解压编码信息的方法
KR100717052B1 (ko) 2005-11-08 2007-05-10 삼성전자주식회사 Cabac 복호기에서 이진 산술 복호화와 이진 매칭을병렬 처리하는 원소 구문의 복호화 방법 및 이를 위한복호화 장치
CN101507280B (zh) 2006-08-25 2012-12-26 汤姆逊许可公司 用于降低分辨率划分的方法和装置
US8345767B2 (en) * 2006-12-14 2013-01-01 Nec Corporation Video encoding method, video encoding device, and video encoding program
US8619853B2 (en) 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
US7839311B2 (en) 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
KR101433169B1 (ko) 2008-01-03 2014-08-28 경희대학교 산학협력단 인트라 방향성에 따른 모드 예측 및 양자화 매트릭스와스캐닝 적용 방법 및 장치
CN101500160B (zh) * 2008-01-28 2015-04-29 华为技术有限公司 一种码流标识方法、装置及编解码系统
JP5373910B2 (ja) * 2008-08-19 2013-12-18 トムソン ライセンシング Cabacストリームのコンプライアンス
US8634456B2 (en) 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
US10455248B2 (en) * 2008-10-06 2019-10-22 Lg Electronics Inc. Method and an apparatus for processing a video signal
WO2011002914A1 (en) * 2009-06-30 2011-01-06 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
KR101457894B1 (ko) 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
CN102098519B (zh) * 2009-12-09 2013-04-17 浙江大学 视频编码方法、解码方法、编码及解码装置
KR101682147B1 (ko) 2010-04-05 2016-12-05 삼성전자주식회사 변환 및 역변환에 기초한 보간 방법 및 장치
EP2559166B1 (en) * 2010-04-13 2017-11-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
KR101379188B1 (ko) 2010-05-17 2014-04-18 에스케이 텔레콤주식회사 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
EP2924995B1 (en) * 2010-07-09 2018-09-12 Samsung Electronics Co., Ltd Method for decoding video by using block merging
KR101484281B1 (ko) * 2010-07-09 2015-01-21 삼성전자주식회사 블록 병합을 이용한 비디오 부호화 방법 및 그 장치, 블록 병합을 이용한 비디오 복호화 방법 및 그 장치
US9591320B2 (en) * 2010-07-15 2017-03-07 Texas Instruments Incorporated Context and bypass encoding video
US20120014433A1 (en) * 2010-07-15 2012-01-19 Qualcomm Incorporated Entropy coding of bins across bin groups using variable length codewords
US8913662B2 (en) * 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
US10123053B2 (en) * 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
US9654785B2 (en) * 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
KR101572535B1 (ko) * 2011-06-30 2015-11-27 후아웨이 테크놀러지 컴퍼니 리미티드 합성 비디오에서의 무손실 코딩 및 관련 시그널링 방법
CA2807468C (en) * 2011-07-18 2019-02-26 Panasonic Corporation Image coding and decoding multiple intra prediction modes coded with context-dependent portions using variable and fixed probabilities
CN103597834B (zh) 2011-08-04 2016-12-21 寰发股份有限公司 基于上下文自适应二进制算术编码的方法及装置
US9787982B2 (en) * 2011-09-12 2017-10-10 Qualcomm Incorporated Non-square transform units and prediction units in video coding
US9871537B2 (en) * 2011-10-27 2018-01-16 Qualcomm Incorporated Mapping states in binary arithmetic coder for video coding
KR20130049524A (ko) 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
US9088796B2 (en) * 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
CN104067614B (zh) 2011-12-28 2018-07-27 夏普株式会社 算术解码装置、图像解码装置以及算术编码装置

Also Published As

Publication number Publication date
KR20180077325A (ko) 2018-07-06
BR112014012893A2 (pt) 2017-06-13
CN108810540B (zh) 2020-07-21
US9736495B2 (en) 2017-08-15
US11405641B2 (en) 2022-08-02
CN108810539B (zh) 2022-10-21
EP3737095A1 (en) 2020-11-11
KR20180124159A (ko) 2018-11-20
BR122020002110B1 (pt) 2023-03-28
CN108989809A (zh) 2018-12-11
KR101920607B1 (ko) 2018-11-20
EP3288264A1 (en) 2018-02-28
HUE060413T2 (hu) 2023-02-28
EP3288264B1 (en) 2020-07-15
US20140355679A1 (en) 2014-12-04
RU2577471C1 (ru) 2016-03-20
CN108810541B (zh) 2020-07-21
HUE060412T2 (hu) 2023-02-28
CN104067624A (zh) 2014-09-24
US20210250611A1 (en) 2021-08-12
ES2929597T3 (es) 2022-11-30
BR122020002117B1 (pt) 2023-04-04
EP2805485B1 (en) 2019-03-13
PL3737095T3 (pl) 2023-01-30
AU2012200345B2 (en) 2014-05-01
ES2930257T3 (es) 2022-12-09
US20210250610A1 (en) 2021-08-12
US11025953B2 (en) 2021-06-01
EP3737096A1 (en) 2020-11-11
CN104067624B (zh) 2018-08-07
PL2805485T3 (pl) 2019-07-31
EP3737096B1 (en) 2022-10-12
EP2805485A4 (en) 2015-09-23
US11399200B2 (en) 2022-07-26
ES2724203T3 (es) 2019-09-09
US11405640B2 (en) 2022-08-02
HUE043097T2 (hu) 2019-08-28
ES2812150T3 (es) 2021-03-16
HUE060411T2 (hu) 2023-02-28
KR20140088594A (ko) 2014-07-10
KR20160067201A (ko) 2016-06-13
RU2640737C1 (ru) 2018-01-11
JP2015507885A (ja) 2015-03-12
EP3737094B1 (en) 2022-10-12
TR201906188T4 (tr) 2019-05-21
RU2690760C1 (ru) 2019-06-05
BR122020002116B1 (pt) 2023-03-28
EP3737095B1 (en) 2022-10-12
CN108924559A (zh) 2018-11-30
WO2013106888A1 (en) 2013-07-25
BR122020002118B1 (pt) 2023-03-28
PL3737094T3 (pl) 2023-01-30
KR102030952B1 (ko) 2019-10-10
US20210250612A1 (en) 2021-08-12
HUE050208T2 (hu) 2020-11-30
US20170302963A1 (en) 2017-10-19
PL3737096T3 (pl) 2023-01-30
RU2691190C1 (ru) 2019-06-11
EP3737094A1 (en) 2020-11-11
CN108924559B (zh) 2020-07-21
RU2666319C1 (ru) 2018-09-06
EP2805485A1 (en) 2014-11-26
PL3288264T3 (pl) 2020-11-16
KR101754547B1 (ko) 2017-07-05
CN108810539A (zh) 2018-11-13
BR122020002118B8 (pt) 2023-05-09
KR101875352B1 (ko) 2018-07-05
CN108989809B (zh) 2020-07-24
ES2929596T3 (es) 2022-11-30
CN108810541A (zh) 2018-11-13
CN108810540A (zh) 2018-11-13
KR20170078874A (ko) 2017-07-07
KR101628793B1 (ko) 2016-06-09

Similar Documents

Publication Publication Date Title
US11399200B2 (en) Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US10841594B2 (en) Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US9712836B2 (en) Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
BR112014021436B1 (pt) Método e aparelho para codificar e decodificar um subconjunto de unidades de transformação de dados de vídeo codificados
ES2724233T3 (es) Aparato y proceso para proporcionar un portador de colágeno enrollado

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: H04N 19/593 (2014.01), H04N 19/11 (2014.01), H04N

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]
B06A Patent application procedure suspended [chapter 6.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 18/01/2013, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.