PT2693752T - Codificação de mapas de significância e blocos de coeficiente de transformada - Google Patents

Codificação de mapas de significância e blocos de coeficiente de transformada Download PDF

Info

Publication number
PT2693752T
PT2693752T PT131887960T PT13188796T PT2693752T PT 2693752 T PT2693752 T PT 2693752T PT 131887960 T PT131887960 T PT 131887960T PT 13188796 T PT13188796 T PT 13188796T PT 2693752 T PT2693752 T PT 2693752T
Authority
PT
Portugal
Prior art keywords
block
transform coefficient
sub
transform
positions
Prior art date
Application number
PT131887960T
Other languages
English (en)
Inventor
Wiegand Thomas
Marpe Detlev
Kirchhoffer Heiner
Schwarz Heiko
Nguyen Tung
Original Assignee
Ge Video Compression Llc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=43989787&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=PT2693752(T) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Ge Video Compression Llc filed Critical Ge Video Compression Llc
Publication of PT2693752T publication Critical patent/PT2693752T/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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/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/124Quantisation
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic 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)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

DESCRIÇÃO
CODIFICAÇÃO DE MAPAS DE SIGNIFICÂNCIA E BLOCOS DE COEFICIENTE DE
TRANSFORMADA 0 presente pedido é direcionado à codificação de mapas de significância que indicam as posições dos coeficientes de transformada significativos dentro de blocos de coeficiente de transformada e à codificação de tais blocos de coeficiente de transformada. Tal codificação pode, por exemplo, ser utilizada em codificação de imagem e video, por exemplo.
Em codificação de video convencional, as imagens de uma sequência de video são, em geral, decompostas em blocos. Os blocos ou os componentes de cor dos blocos são previstos por uma predição com compensação de movimento ou predição intra. Os blocos podem ter diferentes tamanhos, podendo ser ou quadráticos ou retangulares. Todas as amostras de um bloco ou de um componente de cor de um bloco são previstas usando o mesmo conjunto de parâmetros de predição, tais como os indices de referência (identificando um quadro de referência no conjunto de imagens já codificado), os parâmetros de movimento (especificando uma medida para o movimento de um bloco entre uma imagem de referência e a imagem atual), parâmetros para especificar o filtro de interpolação, modos de predição intra, etc. Os parâmetros de movimento podem ser representados por vetores de deslocamento com uma componente horizontal e vertical, ou por meio de parâmetros de movimento de ordem mais elevada, tais como parâmetros de movimento afins, consistindo de 6 componentes. Também é possível que mais do que um conjunto de parâmetros de predição (tais como os índices de referência e parâmetros de movimento) estejam associados a um único bloco.
Neste caso, para cada conjunto de parâmetros de predição, um sinal de predição único intermediário para o bloco ou o componente de cor de um bloco é gerado, e o sinal de predição final é construído por uma soma ponderada dos sinais de predição intermediários. Os parâmetros de ponderação e potencialmente também um deslocamento constante (que é adicionado à soma ponderada) podem ser fixados para uma imagem, ou uma imagem de referência, ou um conjunto de imagens de referência, ou eles podem ser incluídos no conjunto de parâmetros de predição para o bloco correspondente. Da mesma forma, as imagens estáticas são também frequentemente decompostas em blocos, e os blocos são previstos por um método de predição intra (que pode ser um método de predição intra espacial ou um método de predição intra simples que prevê o componente CC do bloco). Em um caso extremo, o sinal de predição pode também ser zero. A diferença entre os blocos originais ou os componentes de cor dos blocos originais e os sinais de predição correspondentes, também referidos como o sinal residual, é geralmente transformada e quantizada. Uma transformada bidimensional é aplicada ao sinal residual e os coeficientes de transformada resultantes são quantizados. Para esta codificação de transformada, os blocos ou os componentes de cor dos blocos, para os quais um conjunto particular de parâmetros de predição foram utilizados, podem ser ainda divididos antes de aplicar a transformada. Os blocos de transformada podem ser iguais a ou menores do que os blocos que são usados para a predição. Também é possível que um bloco de transformada inclua mais do que um dos blocos que são usados para a predição. Diferentes blocos de transformada em uma imagem estática ou uma imagem de uma sequência de vídeo podem ter tamanhos diferentes e os blocos de transformada podem representar blocos quadráticos ou retangulares.
Os coeficientes de transformada quantizados resultantes, também referidos como níveis de coeficiente de transformada, são, então, transmitidos através de técnicas de codificação por entropia. Portanto, um bloco de níveis de coeficiente de transformada normalmente é mapeado para um vetor (isto é, um conjunto ordenado) de valores de coeficiente de transformada utilizando uma varredura, onde diferentes varreduras podem ser utilizadas para diferentes blocos. Muitas vezes, uma varredura de ziguezague é utilizada. Para os blocos que contêm apenas amostras de um campo de um quadro entrelaçado (estes blocos podem ser blocos em campos codificados ou blocos de campo em quadros codificados) , também é comum a utilização de uma varredura diferente concebida especificamente para os blocos de campo. Um algoritmo de codificação por entropia comumente utilizado para codificar a sequência de coeficientes de transformada resultante ordenada é a codificação de nível de execução. Normalmente, um grande número de níveis de coeficiente de transformada é zero, e um conjunto de níveis de coeficiente de transformada sucessivos que são iguais a zero, pode ser eficientemente representado pela codificação do número de níveis de coeficiente de transformada sucessivos que são iguais a zero (a execução). Para os coeficientes de transformada restantes (diferente de zero), o nível real é codificado. Existem várias alternativas de códigos de nível de execução. A execução antes de um coeficiente diferente de zero e o nível de coeficiente de transformada diferente de zero pode ser codificada em conjunto, utilizando um único símbolo ou palavra-chave. Frequentemente, os símbolos especiais para o fim do bloco, que é enviado após o último coeficiente de transformada diferente de zero, estão incluídos. Ou, é possível codificar primeiro o número de níveis de coeficiente de transformada diferente de zero, e dependendo deste número, os níveis e as execuções são codificados.
Uma abordagem ligeiramente diferente é utilizada na codificação por entropia CABAC altamente eficiente em H.264. Aqui, a codificação dos níveis de coeficiente de transformada é dividida em três etapas. Na primeira etapa, um elemento de sintaxe binário coded_block_flag é transmitido para cada bloco de transformada, que indica se o bloco de transformada contém níveis de coeficiente de transformada significativos (isto é, coeficientes de transformada que são diferentes de zero). Se esse elemento de sintaxe indica que níveis de coeficiente de transformada significativos estão presentes, um mapa de significância de valor binário é codificado, que especifica qual dos níveis de coeficiente de transformada têm valores diferentes de zero. E, em seguida, numa ordem de varredura inversa, os valores dos níveis de coeficiente de transformada diferentes de zero são codificados. 0 mapa de signif icância é codificado como a seguir. Para cada coeficiente, na ordem de varredura, um elemento de sintaxe binário significant_coeff_flag é codificado, que especifica se o nível de coeficiente de transformada correspondente não é igual a zero. Se o binário sign! ficant_coeff_f lag é igual a um, isto é, se um nível de coeficiente de transformada diferente de zero existe nesta posição de varredura, um elemento de sintaxe binário adicional last_significant_coeff_flag é codificado. Este binário indica se o nível de coeficiente de transformada significativo atual é o último nível de coeficiente de transformada significativo dentro do bloco ou se mais níveis de coeficiente de transformada significativos seguem na ordem de varredura. Se significant_coeff_flag indica que nenhum coeficiente de transformada significativo adicional segue, nenhum elemento de sintaxe adicional é codificado para indicar o mapa de significância para o bloco. Na etapa seguinte, os valores dos níveis de coeficiente de transformada significativos são codificados, cujas localizações dentro do bloco já estão determinadas pelo mapa de significância. Os valores dos níveis de coeficiente de transformada significativos são codificados em ordem de varredura inversa por meio dos três elementos de sintaxe seguintes. 0 elemento de sintaxe binário coeff abs greater_one indica se o valor absoluto do nível de coeficiente de transformada significativo é maior do que um. Se o elemento de sintaxe binário coeff_abs_greater_one indica que o valor absoluto é maior do que um, um elemento de sintaxe adicional coeff_abs_level_minus_one é enviado, que especifica o valor absoluto do nível de coeficiente de transformada menos um. Finalmente, o elemento de sintaxe binário coeff_sign_flag, que especifica o sinal do valor do coeficiente de transformada, é codificado para cada nível de coeficiente de transformada significativo. Deve ser notado, mais uma vez, que os elementos de sintaxe que estão relacionados com o mapa de significância são codificados em modo de varredura, enquanto que os elementos de sintaxe que estão relacionados com os valores reais dos níveis de coeficiente de transformada são codificados em ordem de varredura inversa permitindo a utilização de modelos de contexto mais apropriados.
Na codificação por entropia CABAC em H.264, todos os elementos de sintaxe para os níveis de coeficiente de transformada são codificados utilizando uma modelagem de probabilidade binária. 0 elemento de sintaxe não-binário coeff_abs_level_minus_one é primeiro binarizado, ou seja, é mapeado em uma sequência de decisões binárias (binários), e esses binários são sequencialmente codificados. Os elementos de sintaxe binários significant_coeff_flag, last_significant_coeff_flag, coeff_abs_greater_one e coeff_sign_flag são diretamente codificados. Cada binário codificado (incluindo os elementos de sintaxe binários) é associado a um contexto. Um contexto representa um modelo de probabilidade para uma classe de binários codificados. Uma medida relativa da probabilidade de um dos dois valores de binários possíveis é estimada para cada contexto com base nos valores dos binários que já foram codificados com o contexto correspondente. Para diversos binários relacionados com a codificação da transformada, o contexto que é usado para a codificação é selecionado com base em elementos de sintaxe já transmitidos ou com base na posição dentro de um bloco. 0 mapa de significância especifica informações sobre o significado (nível de coeficiente de transformada é diferente de zero) para as posições de varredura. Na codificação por entropia CABAC em H.2 64, para um bloco de tamanho de 4x4, um contexto separado é utilizado para cada posição de varredura para a codificação dos elementos de sintaxe binários significant_coeff_flag e o last_significant_coeff_flag, onde contextos diferentes são utilizados para significant_coeff_flag e last_significant_coeff_flag de uma posição de varredura. Para blocos 8x8, o mesmo modelo de contexto é utilizado para quatro posições de varredura sucessivas, resultando em 16 modelos de contexto para significant_coeff_flag e mais 16 modelos de contexto para o last_significant_coeff_flag. Este método de modelagem de contexto para o significant_coeff_flag e o last_significant_coeff_flag tem algumas desvantagens para os grandes tamanhos de blocos. Por um lado, se cada posição de varredura está associada a um modelo de contexto separado, o número de modelos de contexto é significativamente aumentado quando os blocos maiores do que 8x8 são codificados. Um tal número maior de modelos de contexto resulta numa adaptação lenta das estimativas de probabilidade e, geralmente, numa imprecisão das estimativas de probabilidade, em que os dois aspetos têm um impacto negativo sobre a eficiência de codificação. Por outro lado, a atribuição de um modelo de contexto para um número de posições de varredura sucessivas (como foi feito para os blocos 8x8 em H.264) não é também ótima para grandes tamanhos de blocos, uma vez que os coeficientes de transformada diferentes de zero estão geralmente concentrados em regiões especiais de um bloco de transformada (as regiões são dependentes das estruturas principais dentro dos blocos correspondentes do sinal residual).
Após a codificação do mapa de signif icância, o bloco é processado na ordem de varredura inversa. Se uma posição de varredura é significativa, isto é, o coeficiente é diferente de zero, o elemento de sintaxe binário coeff_abs_greater_one é transmitido. Inicialmente, o segundo modelo de contexto do conjunto de modelo de contexto correspondente é escolhido para o elemento de sintaxe coeff_abs_greater_one. Se o valor codificado de qualquer elemento de sintaxe coeff_abs_greater_one dentro do bloco é igual a um (isto é, o coeficiente absoluto seja maior do que 2), a modelagem de contexto de é comutada de volta para o primeiro modelo de contexto do conjunto e utiliza este modelo de contexto até ao final do bloco. Caso contrário (todos os valores codificados de coeff_abs_greater_one dentro do bloco são zero e os níveis de coeficiente absolutos correspondentes são iguais a um) , o modelo de contexto é escolhido em função do número de elementos de sintaxe coeff_abs_greater_one iguais a zero, que já foram codificados/descodifiçados na varredura inversa do bloco considerado. A seleção do modelo de contexto para o elemento de sintaxe coeff_abs_greater_one pode ser resumida pela seguinte equação, em que o índice de modelo de contexto atual Ct+i é selecionado com base no índice de modelo de contexto anterior Ct e o valor do elemento de sintaxe anteriormente codificado coeff_abs_greater_one, o qual é representado por bint na equação. Para o primeiro elemento de sintaxe coeff_abs_greater_one dentro de um bloco, o índice de modelo de contexto é definido igual a Ct = 1.
0 segundo elemento de sintaxe para a codificação dos níveis de coeficiente de transformada absolutos, coeff_abs_level_minus_one só é codificado, quando o elemento de sintaxe coeff_abs_greater_one para a mesma posição de varredura é igual a um. 0 elemento de sintaxe não binário coeff_abs_level_minus_one é binarizado para uma sequência de binários e para o primeiro binário desta binarização; um indice de modelo de contexto é selecionado como descrito a seguir. Os binários restantes da binarização são codificados com contextos fixos. 0 contexto para o primeiro binário da binarização é selecionado como a seguir. Para o primeiro elemento de sintaxe coeff_abs_level_minus_one, o primeiro modelo de contexto do conjunto de modelos de contexto para o primeiro binário do elemento de sintaxe coeff_abs_level_minus_one é selecionado, o indice de modelo de contexto correspondente é definido como igual a Ct = 0. Para cada primeiro binário adicional do elemento de sintaxe coeff_abs_level_minus_one, a modelagem de contexto é comutada para o modelo de contexto seguinte no conjunto, em que o número de modelos de contexto no conjunto é limitado a 5. A escolha do modelo de contexto pode ser expressa pela fórmula seguinte, em que o indice de modelo de contexto atual Ct+i é selecionado com base no índice de modelo de contexto anterior Ct. Como mencionado acima, para o primeiro elemento de sintaxe coeff_abs_level_minus_one dentro de um bloco, o índice de modelo de contexto é definido como igual a Ct = 0. Note-se que conjuntos diferentes de modelos de contexto são utilizados para os elementos de sintaxe coeff_abs_greater_one e coeff_abs_level_minus_one.
Para grandes blocos, este método apresenta alguns inconvenientes. A seleção do primeiro modelo de contexto para coeff_abs_greater_one (que é utilizado, se um valor de coeff_abs_greater_one igual a 1, foi codificado para os blocos) é normalmente feita muito cedo e o último modelo de contexto para coeff_abs_level_minus_one é alcançado muito rapidamente, pois o número de coeficientes significativos é maior do que em pequenos blocos. Assim, a maioria dos binários de coeff_abs_greater_one e coeff_abs_level_m±nus_one são codificados com um modelo de contexto único. Mas estes binários, em geral, têm probabilidades diferentes e, portanto, a utilização de um modelo de contexto único para um grande número de binários tem um impacto negativo sobre a eficiência de codificação.
Embora, em geral, os grandes blocos aumentem a sobrecarga computacional para a realização da transformada de decomposição espectral, a capacidade para eficazmente codificar ambos os pequenos e os grandes blocos permitiria a obtenção de uma melhor eficiência de codificação na codificação de matrizes de amostra, tais como imagens ou matrizes de amostras representativas de outros sinais de informação espacialmente amostrados, tais como mapas de profundidade ou semelhantes. A razão para isto é a dependência entre a resolução espacial e espectral aquando da transformação de uma matriz de amostra dentro de blocos: quanto maior o bloco, maior será a resolução espectral da transformada. Geralmente, seria favorável ser capaz de aplicar localmente a transformada individual a uma matriz de amostra, de tal modo que dentro da área de uma tal transformada individual, a composição espectral da matriz de amostra não varia em grande medida. Para pequenos blocos garantirem que o conteúdo dentro dos blocos é relativamente consistente. Por outro lado, se os blocos forem demasiado pequenos, a resolução espectral é baixa, e a relação entre os coeficientes de transformada não significativos e significativos torna-se inferior.
Assim, seria favorável ter um esquema de codificação que permita uma codificação eficiente para blocos de coeficiente de transformada, mesmo quando eles são grandes, e os seus mapas de significância. 0 documento de referência EP 1487113 A2 descreve o modo como um primeiro símbolo de um bit (CBP4) é transmitido para cada bloco de coeficientes de transformada. Se o CBP4 indica que um bloco correspondente contém coeficientes significativos, uma imagem de significância é codificada em resultado da transmissão de um símbolo de um bit (SIG) para cada coeficiente numa sequência de varredura. - Se um símbolo de significância correspondente é "um", então um símbolo de um bit adicional (LAST) é transmitido para indicar se um coeficiente significativo presente é um último coeficiente dentro de um bloco ou se se seguem coeficientes significativos adicionais. As posições dos coeficientes de transformada significativos contidos num bloco são determinadas e codificadas para cada bloco num primeiro processo de varredura, seguido de um segundo processo de varredura realizado em ordem inversa. 0 documento de referência EP 1768415 Al descreve uma codificação e descodificação de dados de video com eficiência de codificação aumentada. Depois de transformados os dados pixel para o domínio de freguência, apenas um subconjunto predeterminado de coeficientes de transformada é varrido e codificado. Desta forma, os conhecimentos do estado da técnica acerca da localização de coeficientes de transformada regulares de zero podem ser explorados com o objetivo de reduzir as redundâncias nos dados de vídeo codificados. A informação acerca da localização dos coeficientes de transformada regulares de zero pode ser sinalizada tanto explícita como implicitamente ao descodificador. 0 descodificador descodifica o subconjunto de coeficientes de transformada, utiliza a informação sinalizada acerca da localização de coeficientes de transformada regulares de zero para a varredura inversa dos coeficientes de transformada descodificados, e a inversão transforma os coeficientes de transformada novamente num bloco de píxeis. 0 documento de referência US 2003/128753 Al divulga um método de varredura otimizado que proporciona a codificação/descodificação de um sinal de imagem. Num método de codificação de um sinal de imagem através de uma transformada discreta de cosseno, pelo menos um é selecionado entre uma pluralidade de blocos de referência. É gerada uma ordem de varredura na qual são varridos os blocos a serem codificados dos blocos de referência e os blocos a serem codificados são varridos pela ordem da ordem de varredura que foi gerada. O pelo menos um bloco de referência selecionado é temporariamente ou espacialmente adjacente ao bloco a ser codificado. Quando os blocos a serem codificados são varridos, são obtidas probabilidades de que ocorram coeficientes diferentes de zero a partir do pelo menos um bloco de referência selecionado, e a ordem de varredura é determinada em ordem descendente iniciada pela probabilidade mais elevada. Aqui, a ordem de varredura é gerada para ser uma ordem de varredura em ziguezague no caso de as probabilidades serem idênticas. 0 método de varredura otimizado aumenta a eficiência de compressão do sinal. 0 documento de referência GB 2264605 A descreve o modo como um dispositivo de varredura múltipla varre um sinal de acordo com uma pluralidade de diferentes padrões e um seletor do padrão de varredura determina qual o padrão de varredura que produz o resultado de codificação mais eficiente, por exemplo para codificação run-length. O sinal selecionado é multiplexado com um sinal que identifica o padrão de varredura selecionado, de preferência após a codificação de comprimento variável. Tal como descrito, o sinal é um sinal de imagem que passou por transformada discreta de cosseno após compensação de meios. São divulgados oito padrões de varredura ou amostragem diferentes. O artigo "Compression of Sparse Matrices by Arithmetic Coding" ("Compressão de Matrizes Esparsas através de Codificação Aritmética") de Bell T. et al., PROCEEDINGS OF THE DATA COMPRESSION CONFERENCE (DCC ' 98), 30 de março 1998, páginas 23-32, XP01027 6609, IEEE, Los Alamitos, CA, US, DOI: 10.1109/DCC.1998.672126, ISBN: 978-0-8186-8406-7, descreve a compressão de matrizes em que a maioria das entradas são uma constante fixa (tipicamente zero), normalmente referidas como matrizes esparsas. É avaliado o desempenho dos métodos existentes e considerado o modo como a codificação aritmética pode ser aplicada ao problema por forma a se obter melhor compressão. O artigo "Data Compression: The Complete Reference (passage)" ("Compressão de Dados: A Referência Completa (passagem)") de Salomon D. et al., 1998, Springer, Nova Iorque, NY, US, XP002270343, ISBN: 978-0-387-98280-9, páginas 69-84, descreve aspetos da codificação aritmética. O artigo "Context-based Arithmetic Coding Reexamined for DCT Video Compression" de Zhang L. et al., PROCEEDINGS OF THE 2007 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS (ICASP 2007), 1 de maio 2007, páginas 3147-3150, XP031181972, IEEE, Piscataway, NJ, US, ISBN: 978-1-4244-0920-4, apresenta uma nova técnica de modelagem de contexto para a codificação aritmética de coeficientes DCT na compressão de video. Uma caracteristica fundamental da nova técnica é a inclusão de todas as magnitudes de coeficiente previamente codificadas num bloco DCT na modelagem de contexto. Tal permite que codificação aritmética adaptativa explore a redundância do processo de Markov de ordem superior no domínio DCT com poucos estados condicionantes. Para além disso, uma técnica de ponderação de contexto é utilizada para adicionalmente melhorar a eficiência da codificação. A complexidade do novo esquema de codificação aritmética é ligeiramente inferior à da Codificação Aritmética Binária Adaptativa ao Contexto (CABAC) de H.264. 0 artigo "An overview of the basic principles of the Q-Coder adaptive binary arithmetic coder" de Pennebaker W. B. et al., IBM JOURNAL OF RESEARCH AND DEVELOPMENT, Vol. 32, N°. 6, novembro 1988, páginas 717-726, XP000111384, IBM Corporation,
Nova Iorque, NY, US, ISSN: 0018-8646, apresenta o codificador Q como uma nova forma de codificação aritmética binária adaptativa. A parte de codificação aritmética binária da técnica é derivada dos conceitos básicos introduzidos por Rissanen, Pasco e Langdon, mas abrange as convenções de codificação para resolver um conflito entre implementações de software e de hardware otimizados. Para além disso, é utilizada uma forma robusta para a estimativa de probabilidade, na qual, a estimativa de probabilidade deriva unicamente das renormalizações intervaladas que fazem parte do processo de codificação aritmética. É apresentado um breve tutorial acerca de conceitos de codificação aritmética, seguido de um debate acerca das estruturas de codificação compatíveis de software e de hardware otimizados e da estimativa de probabilidades de símbolo a partir de renormalização intervalada. O artigo "Context-based Artithmetic Encoding of 2D Shape Sequences" de Brady N. et al., PROCEEDINGS OF THE IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP 1997), Vol. 1, 26 outubro 1997, páginas 29-32, XP010254100, IEEE, Los
Alamitos, CA, US, DOI: 10.1109/ICIP.1997.647376, ISBN: 978-0- 8186-8183-7, descreve um novo método para a codificação de formas em sequências de vídeo baseadas no objeto. A codificação aritmética com base no contexto, tal como utilizada em JBIG, é utilizada dentro de uma estrutura baseada num bloco e adicionalmente alargada de modo a fazer uso eficiente da predição temporal.0 artigo "Context-based adaptive binary arithmetic coding in JVT/H.26L" de Marpe D. et al., PROCEEDINGS OF THE IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP 2002), Vol. 2, 22 setembro 2002, páginas 513-516, XP010608021, IEEE, Los Alamitos, CA, US, ISBN: 978-0-7803-7622-9, descreve a CODIFICAÇÃO ARITMÉTICA BINÁRIA ADAPTATIVA AO CONTEXTO EM JVT/H.26L, apresenta um novo esquema de codificação de entropia adaptativa para a compressão de video. Utiliza uma técnica de codificação aritmética adaptativa para melhor fazer corresponder a entropia da primeira ordem dos símbolos codificados e para manter o contacto com estatísticas de símbolos não estatutárias. Para além disso, as redundâncias de símbolo remanescentes serão exploradas por modelagem de contexto para uma redução adicional da taxa de bits. É apresentada uma nova abordagem para a codificação de coeficientes de transformada e um método de pesquisa em tabela para a estimativa de probabilidade e codificação aritmética. Esta nova abordagem foi integrada no modelo de teste JVT atual (JM) para demonstrar o ganho de desempenho, e foi adotada como parte do projeto JVT/H.26L.
Assim, o objetivo da presente invenção é o de proporcionar um esquema de codificação para a codificação de blocos de coeficiente de transformada de modo que a eficiência de codificação seja aumentada.
Este objetivo é atingido pelo objeto das reivindicações independentes.
De acordo com um aspeto do presente pedido de patente, o pedido é baseado na constatação de que a eficiência de codificação para a codificação de um bloco de coeficiente de transformada pode ser aumentada quando um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada precede a codificação dos valores reais dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada, e se a ordem de varredura predeterminada, entre as posições do bloco de coeficiente de transformada utilizado para associar sequencialmente a sequência de valores dos coeficientes de transformada significativos com as posições dos coeficientes de transformada significativos varre o bloco de coeficiente de transformada em sub-blocos utilizando uma ordem de varredura de sub-bloco entre os sub-blocos, adicionalmente, fazendo a varredura das posições dos coeficientes de transformada dentro dos sub-blocos numa ordem de varredura de coeficiente, e se um conjunto selecionado de um número de contextos de uma pluralidade de conjuntos de um número de contexto é utilizado para sequencialmente descodificar por entropia adaptativa ao contexto os valores dos valores de coeficiente de transformada significativos, a seleção do conjunto selecionado, dependendo dos valores dos coeficientes de transformada dentro de um sub-bloco do bloco de coeficiente de transformada já tendo sido percorrido na ordem de varredura do sub-bloco ou a seleção dependendo dos valores dos coeficientes de transformada de um sub-bloco co-localizado num bloco de coeficiente de transformada previamente descodificado. Desta forma, a adaptação de contexto é muito bem adequada para a propriedade acima delineada dos coeficientes de transformada significativos serem agrupados em certas áreas no interior de um bloco de coeficiente de transformada, em especial quando grandes blocos de coeficiente de transformada são considerados. Por outras palavras, os valores podem ser varridos em sub-blocos, e os contextos selecionados com base em estatísticas de sub-bloco.
De acordo com um aspeto adicional do presente pedido, uma ideia subjacente do presente pedido é que uma maior eficiência de codificação para codificação de um mapa de significância indicando as posições dos coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada pode ser alcançada se a ordem de varredura, através da qual os elementos de sintaxe sequencialmente extraídos indicando, para as posições associadas dentro do bloco de coeficiente de transformada, quanto ao fato se na respetiva posição um coeficiente de transformada significativo ou não significativo está situado, são sequencialmente associados às posições do bloco de coeficiente de transformada, entre as posições do bloco de coeficiente de transformada depende das posições dos coeficientes de transformada significativos indicados pelos elementos de sintaxe previamente associados. Em particular, os inventores descobriram que, em conteúdo típico de matriz de amostra, tais como imagem, vídeo ou os conteúdos do mapa de profundidade, os coeficientes de transformada significativos principalmente formam aglomerados em um determinado lado do bloco de coeficiente de transformada correspondente, quer para frequências diferentes de zero na vertical e baixas frequências no sentido horizontal ou vice-versa, de modo que, levar em conta as posições dos coeficientes de transformada significativos indicados pelos elementos de sintaxe previamente associados permite controlar a causa adicional da varredura de modo que a probabilidade de atingir o último coeficiente de transformada significativo dentro do bloco de coeficiente de transformada anterior é aumentada em relação a um procedimento de acordo com o qual a ordem de varredura é predeterminada independentemente das posições dos coeficientes de transformada significativos indicados pelos elementos de sintaxe previamente associados até agora. Isto é particularmente verdadeiro para grandes blocos, embora o que se acaba de dizer acima seja também válido para pequenos blocos.
De acordo com uma forma de realização do presente pedido, o descodificador por entropia é configurado para extrair a informação do fluxo de dados que permita o reconhecimento de saber se um coeficiente de transformada significativo atualmente indicado por um elemento de sintaxe associado no momento é o último coeficiente de transformada significativo independentemente da sua exata posição dentro do bloco de coeficiente de transformada, em que o descodificador por entropia está configurado para não esperar nenhum elemento de sintaxe adicional, no caso do elemento de sintaxe atual relativamente a tal último coeficiente de transformada significativo. Esta informação pode compreender o número de coeficientes de transformada significativos dentro do bloco. Como alternativa, os segundos elementos de sintaxe são intercalados com os primeiros elementos de sintaxe, os segundos elementos de sintaxe, indicando, para as posições associadas em que um coeficiente de transformada significativo se situa, para saber se o mesmo é o último coeficiente de transformada no bloco de coeficiente de transformada ou não.
De acordo com uma forma de realização, o associador adapta a ordem de varredura de acordo com as posições dos coeficientes de transformada significativos indicados até agora apenas em posições pré-definidas dentro do bloco de coeficiente de transformada. Por exemplo, vários subcaminhos que percorrem mutuamente subconjuntos desconexos de posições dentro do bloco de coeficiente de transformada estendem-se substancialmente na diagonal a partir de um par de lados do bloco de coeficiente de transformada correspondendo à frequência minima ao longo de uma primeira direção e à frequência mais elevada ao longo da direção oposta, respetivamente, para um par de lados oposto do bloco de coeficiente de transformada correspondentes à frequência zero ao longo da segunda direção e à frequência máxima ao longo da primeira direção, respetivamente. Neste caso, o associador está configurado para selecionar a ordem de varredura de tal forma que os subcaminhos são percorridos por uma ordem entre os subcaminhos onde a distância dos subcaminhos para a posição CC no interior do bloco de coeficiente de transformada aumenta continuamente, cada subcaminho é percorrido sem interrupção ao longo da direção de execução, e para cada subcaminho, a direção ao longo da qual o subcaminho é percorrido é selecionada pelo associador dependendo das posições dos coeficientes de transformada significativos terem sido percorridas durante os subcaminhos anteriores. Por esta medida, é aumentada a probabilidade de que o último subcaminho, em que o último coeficiente de transformada significativo está situado, seja percorrido numa direção, de modo que é mais provável que o último coeficiente de transformada significativo se encontre dentro da primeira metade deste último subcaminho do que dentro da segunda metade do mesmo, permitindo, desse modo, reduzir o número de elementos de sintaxe indicando a respeito de se numa respetiva posição um coeficiente de transformada significativo ou não significativo está situado. 0 efeito é especialmente valioso no caso de grandes blocos de coeficiente de transformada.
De acordo com um aspeto adicional do presente pedido, o presente pedido de patente baseia-se na constatação de que um mapa de significância indicando as posições de coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada pode ser codificado de forma mais eficiente se os elementos de sintaxe acima mencionados indicando, para as posições associadas dentro do bloco de coeficiente de transformada quanto a se na respetiva posição um coeficiente de transformada significativo ou não significativo está situado, forem descodificados por entropia adaptativa ao contexto utilizando contextos que são selecionados individualmente para cada um dos elementos de sintaxe dependente de um número de coeficientes de transformada significativos de uma vizinhança do respetivo elemento de sintaxe, indicado como sendo significativo, por qualquer um dos elementos de sintaxe precedentes. Em particular, os inventores descobriram que, com o aumento do tamanho dos blocos de coeficiente de transformada, os coeficientes de transformada significativos são, de alguma forma, agrupados em certas áreas no interior do bloco de coeficiente de transformada de modo que uma adaptação de contexto que não só é sensível ao número de coeficientes de transformada significativos tendo sido percorridos nas ordens de varredura pré-determinadas até agora, mas que também tenha em consideração a vizinhança dos coeficientes de transformada significativos, resulta numa melhor adaptação do contexto e, portanto, aumenta a eficiência de codificação da codificação por entropia. É claro que ambos os aspetos acima delineados podem ser combinados de uma forma favorável.
As formas de realização preferidas do presente pedido de patente são descritas a seguir com respeito às figuras, entre as quais: A Figura 1 mostra um diagrama de bloco de um codificador de acordo com uma forma de realização;
As Figuras 2a-2c esquematicamente mostram diferentes subdivisões de uma matriz de amostra tal como uma imagem em blocos; A Figura 3 mostra um diagrama de bloco de um descodificador de acordo com uma forma de realização; A Figura 4 mostra um diagrama de bloco de um codificador de acordo com uma forma de realização do presente pedido de patente em mais detalhe; A Figura 5 mostra um diagrama de bloco de um descodificador de acordo com uma forma de realização do presente pedido de patente em mais detalhe; A Figura 6 ilustra esquematicamente uma transformada de um bloco de domínio espacial em domínio espectral; A Figura 7 mostra um diagrama de bloco de um aparelho para descodificar o mapa de significância e os coeficientes de transformada significativos de um bloco de coeficiente de transformada, de acordo com uma forma de realização; A Figura 8 mostra esquematicamente uma subdivisão de uma ordem de varredura em subcaminhos e as suas direções transversais diferentes; A Figura 9 ilustra esquematicamente definições de vizinhança para determinadas posições de varredura dentro de um bloco de transformada, de acordo com uma forma de realização; A Figura 10 ilustra esquematicamente definições de vizinhança possíveis para algumas posições de varredura dentro de blocos de transformada que estão na borda de um bloco de transformada; A Figura 11 mostra uma possível varredura de blocos de transformada de acordo com uma forma de realização adicional do presente pedido de patente.
Deve ser notado que, durante a descrição das Figuras, os elementos que ocorrem em várias destas Figuras estão indicados com o mesmo sinal de referência em cada uma destas Figuras e uma descrição repetida de tais elementos, tanto quanto diz respeito à funcionalidade, é evitada de forma a evitar repetições desnecessárias. No entanto, as funcionalidades e descrições fornecidas com respeito a uma figura são igualmente aplicáveis a outras Figuras, a menos que o contrário seja expressamente indicado. A Figura 1 mostra um exemplo de um codificador 10, em que os aspetos do presente pedido de patente podem ser aplicados. O codificador codifica uma matriz de amostras de informação 20 num fluxo de dados. A matriz de amostras de informação pode representar qualquer tipo de sinal de informação espacialmente amostrado. Por exemplo, a matriz de amostra 20 pode ser uma imagem estática ou uma imagem de um vídeo. Deste modo, as amostras de informação podem corresponder a valores de brilho, valores de cor, valores de luminância, valores de croma ou semelhantes. No entanto, as amostras de informação podem também ser valores de profundidade, no caso da matriz de amostra 20 ser um mapa de profundidade gerado por, por exemplo, um sensor de luz de tempo ou semelhante. O codificador 10 é um codificador baseado em bloco. Isto é, o codificador 10 codifica a matriz de amostra 20 para o fluxo de dados 30, em unidades de blocos 40. A codificação em unidades de blocos 40, não significa necessariamente que o codificador 10 codifica os blocos 40 totalmente independentes uns dos outros. Em vez disso, o codificador 10 pode utilizar reconstruções de blocos previamente codificados, a fim de extrapolar ou intra-predizer blocos restantes, e pode utilizar a granularidade dos blocos para a definição de parâmetros de codificação, ou seja, para definir a forma como cada região da matriz de amostra correspondente a um respetivo bloco é codificada.
Além disso, o codificador 10 é um codificador de transformada. Isto é, o codificador 10 codifica os blocos 40 utilizando uma transformada, a fim de transferir as amostras de informação dentro de cada bloco 40 do domínio espacial para o domínio espectral. Uma transformada bidimensional tal como uma CCT de FFT ou semelhante, pode ser utilizada. De preferência, os blocos 40 são de forma quadrangular ou retangular. A subdivisão da matriz de amostra 20 em blocos 40 mostrada na Figura 1 serve meramente para fins de ilustração. A Figura 1 mostra a matriz de amostra 20 como sendo subdividida numa disposição bidimensional regular de blocos quadráticos ou retangulares 40 que se encostam uns aos outros de uma maneira não sobreposta. O tamanho dos blocos 40 pode ser pré-determinado. Isto é, o codificador 10 não pode transferir uma informação sobre o tamanho do bloco dos blocos 40 no interior do fluxo de dados 30 para o lado da descodificação. Por exemplo, o descodificador pode esperar o tamanho do bloco pré-determinado.
No entanto, várias alternativas são possíveis. Por exemplo, os blocos podem sobrepor-se uns aos outros. A sobreposição pode, no entanto, ser limitada de tal forma que cada bloco tem uma porção não sobreposta por qualquer bloco vizinho, ou de tal modo que cada amostra dos blocos é sobreposta por, no máximo, um bloco entre os blocos vizinhos dispostos em justaposição para o bloco atual ao longo de uma direção pré-determinada. Este último significaria que os blocos vizinhos da esquerda e da direita podem se sobrepor ao bloco atual, de modo a cobrir totalmente o bloco atual, mas não podem se sobrepor um ao outro, e o mesmo se aplica aos vizinhos na direção vertical e diagonal.
Como uma outra alternativa, a subdivisão da matriz de amostra 20 em blocos 40 pode ser adaptada ao conteúdo da matriz de amostra 20 pelo codificador 10 com a informação de subdivisão na subdivisão utilizada sendo transferida para o lado do descodificador através de fluxo de bits 30.
As Figuras 2a a 2c mostram diferentes exemplos de uma subdivisão de uma matriz de amostra 20 em blocos 40. A Figura 2a mostra uma subdivisão baseada em quadtree de uma matriz de amostra 20 em blocos 40 de diferentes tamanhos, com blocos representativos sendo indicados em 40a, 40b, 40c e 40d, com aumento de tamanho. De acordo com a subdivisão da Figura 2a, a matriz de amostra 20 é, em primeiro lugar, dividida numa disposição bidimensional regular de blocos de árvore 40d, que, por sua vez, têm a informação de subdivisão individual com ele associado, segundo a qual um certo bloco de árvore 40d pode ainda ser subdividido de acordo com uma estrutura de quadtree ou não. O bloco de árvore para a esquerda do bloco 40d é exemplificativamente subdividido em blocos mais pequenos, de acordo com uma estrutura de quadtree. O codificador 10 pode executar uma transformada bidimensional para cada um dos blocos mostrados com linhas continuas e tracejadas na Figura 2a. Por outras palavras, o codificador 10 pode transformar a matriz 20 em unidades da subdivisão do bloco.
Em vez de uma subdivisão baseada em quadtree, uma subdivisão mais geral baseada em multi árvore pode ser utilizada, e o número de nós secundários por nivel de hierarquia pode diferir entre diferentes niveis hierárquicos. A Figura 2b mostra um outro exemplo de uma subdivisão. De acordo com a Figura 2b, a matriz de amostra 20 é, em primeiro lugar, dividida em macroblocos 40b dispostos numa disposição bidimensional regular encostados mutuamente de forma não sobreposta, em que cada macrobloco 40b tem, com ele associada, a informação de subdivisão de acordo com a qual um macrobloco não é subdividido, ou, se subdividido, subdividido de uma forma bidimensional regular em sub-blocos de tamanho igual, de modo a atingir diferentes granularidades de subdivisão para diferentes macroblocos. O resultado é uma subdivisão da matriz de amostra 20 em blocos 40 de diferentes tamanhos com os representantes dos diferentes tamanhos sendo indicados em 40a, 40b e 40a'. Como na Figura 2a, o codificador 10 realiza uma transformada bidimensional em cada um dos blocos mostrados na Figura 2b, com as linhas continuas e tracejadas. A Figura 2c será discutida mais tarde. A Figura 3 mostra um descodificador 50 sendo capaz de descodificar o fluxo de dados 30 gerado pelo codificador 10 para reconstruir uma versão reconstruída 60 da matriz de amostra 20. 0 descodificador 50 extrai a partir do fluxo de dados 30, o bloco de coeficiente de transformada para cada um dos blocos 40 e reconstrói a versão reconstruída 60 através da realização de uma transformada inversa em cada dos blocos de coeficiente de transformada. O codificador 10 e o descodificador 50 podem ser configurados para realizar a codificação/descodificação por entropia, a fim de inserir a informação sobre os blocos de coeficiente de transformada em, e extrair esta informação a partir do fluxo de dados, respetivamente. Detalhes a este respeito são descritos mais adiante. Deve ser notado que o fluxo de dados 30 não compreende necessariamente informação sobre blocos de coeficiente de transformada para todos os blocos 40 da matriz de amostra 20. Em vez disso, como o subconjunto de blocos 40 pode ser codificado dentro do fluxo de bits 30 de outro modo. Por exemplo, o codificador 10 pode decidir a se abster da inserção de um bloco de coeficiente de transformada para um determinado bloco de blocos 40 com a inserção no fluxo de bits 30 de parâmetros de codificação alternativos, em vez disso, o que permite que o descodificador 50 faça a predição ou, de outro modo, encha o respetivo bloco na versão reconstruída 60. Por exemplo, o codificador 10 pode realizar uma análise de textura, a fim de localizar os blocos no interior da matriz de amostra 20 que podem ser cheios no lado do descodificador através de descodificação por meio de sintese de textura e indicar isso dentro do fluxo de bits consequentemente.
Como discutido nas fiquras seguintes, os blocos de coeficiente de transformada não representam necessariamente uma representação do domínio espectral das amostras de informação originais de um respetivo bloco 40 da matriz de amostra 20. Em vez disso, um tal bloco de coeficiente de transformada pode representar uma representação de domínio espectral de um residual de predição do respetivo bloco 40. A Figura 4 mostra uma forma de realização de um tal codificador. O codificador da Figura 4 compreende um estágio de transformada 100, um codificador por entropia 102, um estágio de transformada inversa 104, um preditor 106 e um subtrator 108, bem como um adicionador 110. O subtrator 108, o estágio de transformada 100 e o codificador por entropia 102 estão ligados em série pela ordem mencionada entre uma entrada 112 e uma saída 114 do codificador da Figura 4. O estágio de transformada inversa 104, o adicionador 110 e o preditor 106 estão ligados na ordem mencionada entre a saída do estágio de transformada 100 e a entrada inversora do subtrator 108, com a saída do preditor 106 também estando ligada a uma outra entrada do adicionador 110. O codificador da Figura 4 é um codificador de bloco baseado em transformada preditivo. Isto é, os blocos de uma matriz de amostra 20 que entram na entrada 112 estão previstos a partir de porções previamente codificadas e reconstituídas da mesma matriz de amostra 20 ou de outras matrizes de amostra previamente codificadas e reconstruídas que podem preceder ou suceder a matriz de amostra 20 atual no tempo. A predição é executada pelo preditor 106. O subtrator 108 subtrai a predição de um tal bloco original e o estágio de transformada 100 executa uma transformação bidimensional nos residuais de predição. A transformação bidimensional em si ou uma medida subsequente dentro do estágio de transformada 100 pode levar a uma quantização dos coeficientes de transformada dentro dos blocos de coeficiente de transformada. Os blocos de coeficiente de transformada quantizados são codificados, sem perdas, por exemplo, por codificação por entropia no codificador por entropia 102 com o fluxo de dados resultante sendo emitido na saída 114. O estágio de transformada inversa 104 reconstrói o residual quantizado e o adicionador 110, por sua vez, combina o residual reconstruído com a predição correspondente, a fim de obter amostras de informação reconstruídas com base nas quais o preditor 106 pode prever os blocos de predição atualmente codificados mencionados acima. O preditor 106 pode utilizar modos de predição diferentes, tais como modos de predição intra e modos de predição inter a fim de prever os blocos e os parâmetros de predição são transmitidos ao codificador por entropia 102 para inserção dentro do fluxo de dados.
Isto é, de acordo com a forma de realização da Figura 4, os blocos de coeficiente de transformada representam uma representação espectral de um residual da matriz de amostra, em vez de amostras de informação efetivas.
Deve ser notado que existem várias alternativas para a forma de realização da Figura 4, tendo algumas delas sido descritas na parte introdutória da especificação cuja descrição é incorporada na descrição da Figura 4 em anexo. Por exemplo, a predição gerada pelo preditor 106 não pode ser codificada por entropia. Em vez disso, a informação lateral pode ser transferida para o lado do descodif icador por meio de um outro esquema de codificação. A Figura 5 mostra um descodificador capaz de descodificar um fluxo de dados gerado pelo codificador da Figura 4. O descodificador da Figura 5 compreende um descodificador por entropia 150, um estágio de transformada inversa 152, um adicionador 154 e um preditor 156. O descodificador por entropia 150, o estágio de transformada inversa 152, e o adicionador 154 são ligados em série entre uma entrada 158 e uma saída 160 do descodificador da Figura 5, na ordem mencionada. Uma outra saída do descodificador por entropia 150 está ligada ao preditor 156 que, por sua vez, está ligado entre a saída do adicionador 154 e uma outra entrada do mesmo. O descodificador por entropia 150 extrai, a partir do fluxo de dados de entrada do descodificador da Figura 5 na entrada 158, os blocos de coeficiente de transformada, em que uma transformada inversa é aplicada aos blocos de coeficiente de transformada no estágio 152, a fim de obter o sinal residual. 0 sinal residual é combinado com uma predição do preditor 156 no adicionador 154, de modo a obter um bloco reconstruído da versão reconstruída da matriz de amostra na saída 160. Com base nas versões reconstruídas, o preditor 156 gera as predições, assim, reconstruindo as predições realizadas pelo preditor 106 no lado do codificador. A fim de obter as predições idênticas às utilizadas no lado do codificador, o preditor 156 utiliza os parâmetros de predição que o descodificador por entropia 150 também obtém a partir do fluxo de dados na entrada 158.
Deve ser notado que nas formas de realização acima descritas, a granularidade espacial em que a predição e a transformação do residual são realizadas, não tem que ser igual uma à outra. Isto é mostrado na Figura 2C. Esta figura mostra uma subdivisão para os blocos de predição da granularidade de predição com linhas contínuas e a granularidade residual com linhas tracejadas. Como pode ser visto, as subdivisões podem ser selecionadas pelo codificador independentemente um do outro. Para ser mais preciso, a sintaxe do fluxo de dados pode permitir uma definição da subdivisão residual independentemente da subdivisão de predição. Alternativamente, a subdivisão residual pode ser uma extensão da subdivisão de predição, de modo que cada bloco residual ou é igual a ou um subconjunto apropriado de um bloco de predição. Isto é mostrado na Figura 2a e na Figura 2b, por exemplo, quando de novo a granularidade de predição é mostrada com linhas contínuas e a granularidade residual com linhas tracejadas. Isto é, nas Figuras 2a-2c, todos os blocos que têm um sinal de referência associado com o mesmo seriam blocos residuais para os quais uma transformada bidimensional seria realizada enquanto os blocos de linhas sólidas maiores que englobam os blocos de linhas tracejadas 40a, por exemplo, seriam blocos de predição para os quais uma definição de parâmetro de predição é realizada individualmente.
As formas de realização acima têm em comum o fato de que um bloco (residual ou original) de amostras deve ser transformado, no lado do codificador num bloco de coeficiente de transformada, que, por sua vez, deve ser transformado inversamente num bloco de amostras reconstruído no lado do descodificador. Isto está ilustrado na Figura 6. A Figura 6 mostra um bloco de amostras 200. No caso da Figura 6, este bloco 200 é exemplificativamente quadrático e as amostras 202 de tamanho 4x4. As amostras 202 são regularmente dispostas ao longo de uma direção horizontal x e direção vertical y. Pela transformada bidimensional T acima mencionada, o bloco 200 é transformado no domínio espectral, isto é, num bloco 204 de coeficientes de transformada 206, o bloco de transformada 204 sendo do mesmo tamanho do bloco 200. Isto é, o bloco de transformada 204 tem o mesmo número de coeficientes de transformada 206 que o bloco 200 tem amostras, em ambas as direções horizontal e vertical. No entanto, como a transformada T é uma transformação espectral, as posições dos coeficientes de transformada 206 dentro do bloco de transformada 204 não correspondem a posições espaciais, mas sim a componentes espectrais do conteúdo do bloco 200. Em particular, o eixo horizontal do bloco de transformada 204 corresponde a um eixo ao longo do qual a frequência espectral na direção horizontal aumenta continuamente, enquanto que o eixo vertical corresponde a um eixo ao longo do qual a frequência espacial na direção vertical aumenta continuamente, em que o coeficiente de transformada do componente CC está posicionado em um canto -aqui exemplificativamente o canto superior esquerdo - do bloco 204, de modo que no canto inferior direito, o coeficiente de transformada 206 correspondente à maior frequência na direção horizontal e vertical é posicionado. Ao negligenciar a direção espacial, a frequência espacial a que um certo coeficiente de transformada 206 pertence, em geral, aumenta a partir do canto superior esquerdo para o canto inferior direito. Através de uma transformada inversa T-1, o bloco de transformada 204 é transferido novamente do domínio espectral para o domínio espacial, de modo a obter novamente uma cópia 208 do bloco 200. No caso de nenhuma quantização/perda ter sido introduzida durante a transformação, a reconstrução seria perfeita.
Como já foi notado acima, pode ser visto a partir da Figura 6 que tamanhos maiores de bloco do bloco 200 aumentam a resolução espectral da representação espectral resultante 204. Por outro lado, o ruído de quantização tende a espalhar-se sobre a totalidade do bloco 208 e, assim, objetos abruptos e muito localizados dentro dos blocos 200 tendem a conduzir a desvios do bloco transformado novamente em relação ao bloco original 200 devido ao ruído de quantização. A principal vantagem de utilizar blocos maiores é, no entanto, que a razão entre o número de coeficientes de transformada significativos, isto é, diferentes de zero (quantizados) por um lado, e o número de coeficientes de transformada não significativos, por outro lado, pode ser diminuída dentro de grandes blocos em comparação com blocos mais pequenos, permitindo assim uma melhor eficiência de codificação. Por outras palavras, com frequência, os coeficientes de transformada significativos, isto é, os coeficientes de transformada não quantizados para zero, são distribuídos através do bloco de transformada 204 de modo disperso. Devido a isso, de acordo com as formas de realização descritas em mais detalhe abaixo, as posições dos coeficientes de transformada significativos são sinalizadas dentro do fluxo de dados por meio de um mapa de significância. Separadamente do mesmo, os valores do coeficiente de transformada significativos, ou seja, os níveis de coeficiente de transformada no caso dos coeficientes de transformada serem quantizados, são transmitidos no fluxo de dados.
Por conseguinte, de acordo com uma forma de realização do presente pedido, um aparelho para a descodificação de um tal mapa de significância ao longo dos valores de coeficiente de transformada significativos correspondentes a partir do fluxo de dados, pode ser implementado como mostrado na Figura 7, e cada um dos descodificadores por entropia mencionados acima, nomeadamente o descodificador 50 e o descodificador por entropia 150 podem compreender o aparelho representado na Figura 7. O aparelho da Figura 7 compreende um descodificador por entropia de mapa/coeficiente 250 e um associador 252. O descodificador por entropia de mapa/coeficiente 250 está conectado a uma entrada 254, na qual, elementos de sintaxe que representam o mapa de significância e os valores de coeficiente de transformada significativos entram. Como será descrito em mais detalhe abaixo, existem diferentes possibilidades em relação à ordem pela qual os elementos de sintaxe que descrevem o mapa de signif icância, por um lado, e os valores de coeficiente de transformada significativos, por outro lado, entram no descodificador por entropia de mapa/coeficiente 250. Os elementos de sintaxe do mapa de significância podem preceder os níveis correspondentes, ou ambos podem ser intercalados. No entanto, presume-se que preliminarmente os elementos de sintaxe que representam o mapa de significância precedem os valores (níveis) dos coeficientes de transformada significativos de modo que o descodificador por entropia de mapa/coeficiente 250 descodifica, em primeiro lugar, o mapa de significância e, em seguida, os níveis de coeficiente de transformada dos coeficientes de transformada significativos.
Como o descodificador por entropia de mapa/coeficiente 250 sequencialmente descodifica os elementos de sintaxe que representam o mapa de significância e os valores de coeficiente de transformada significativos, o associador 252 está configurado para associar estes elementos de sintaxe/valores sequencialmente descodificados para as posições dentro do bloco de transformada 256. A ordem de varredura na qual o associador 252 associa os elementos de sintaxe sequencialmente descodif içados que representam o mapa de signif icância e os níveis dos coeficientes de transformada significativos para as posições do bloco de transformada 256 segue uma ordem de varredura unidimensional entre as posições do bloco de transformada 256 que é idêntica à ordem utilizada no lado do codificador para introduzir estes elementos no fluxo de dados. Conforme também será descrito mais detalhadamente abaixo, a ordem de varredura para os elementos de sintaxe do mapa de significância pode ser igual à ordem utilizada para os valores de coeficiente de transformada significativos, ou não. O descodificador por entropia de mapa/coeficiente 250 pode aceder às informações sobre o bloco de transformada 256 disponíveis até agora, como geradas pelo associador 252 até um elemento/nível de sintaxe atualmente a ser descodificado, a fim de definir o contexto de estimativa de probabilidade para a descodificação por entropia do elemento/nível de sintaxe atualmente a ser descodificado, tal como indicado por uma linha tracejada 258. Por exemplo, o associador 252 pode registar as informações coletadas até agora a partir dos elementos de sintaxe sequencialmente associados, tais como os próprios níveis ou a informação sobre se na respetiva posição um coeficiente de transformada significativo está situado ou não, ou sobre se nada se sabe sobre a respetiva posição do bloco de transformada 256, em que o descodificador por entropia de mapa/coeficiente 250 acede a esta memória. A memória agora mencionada não é mostrada na Figura 7, mas o sinal de referência 256 pode também indicar esta memória como a memória ou armazenamento temporário de registo que seria para armazenar a informação preliminar obtida pelo associador 252 e descodificador por entropia 250 até agora. Por conseguinte, a Figura 7 ilustra com cruzes as posições de coeficientes de transformada significativos obtidos a partir dos elementos de sintaxe previamente descodificados que representam o mapa de signif icância e um "1" para indicar que o nível de coeficiente de transformada significativo do coeficiente de transformada significativo na respetiva posição já foi descodificado e é 1. No caso dos elementos de sintaxe do mapa de significância que precedem os valores significativos no fluxo de dados, uma cruz teria sido registada na memória 256 na posição de "1" (esta situação teria representado o mapa de significância inteiro) antes de entrar no "1" mediante a descodificação do respetivo valor. A descrição a seguir concentra-se em formas de realização específicas para a codificação dos blocos de coeficiente de transformada ou do mapa de signif icância, em que as formas de realização são facilmente transferíveis para as formas de realização descritas acima. Nestas formas de realização, um elemento de sintaxe binário coded_block_flag pode ser transmitido para cada bloco de transformada, que indica se a bloco de transformada contém qualquer nível de coeficiente de transformada significativo (isto é, coeficientes de transformada que são diferentes de zero). Se este elemento de sintaxe indica que os níveis de coeficiente de transformada significativos estão presentes, o mapa de signif icância é codificado, isto é, apenas em seguida. O mapa de significância especifica, como indicado acima, quais os níveis de coeficiente de transformada que têm valores diferentes de zero. A codificação do mapa de significância implica uma codificação de elementos de sintaxe binários significant_coeff_flag especificando cada um, respetivamente, uma posição de coeficiente associada se o nivel de coeficiente de transformada correspondente não é igual a zero. A codificação é realizada numa certa ordem de varredura que pode mudar durante a codificação do mapa de significância dependendo das posições dos coeficientes significativos identificados como sendo significativos, até agora, como será descrito em mais detalhe abaixo. Além disso, a codificação do mapa de significância implica uma codificação de elementos de sintaxe binários last_significant_coeff_flag intervalados com a sequência significant_coeff_flag nas posições do mesmo, onde significant_coeff_flag sinaliza um coeficiente significativo. Se o binário significant_coeff_flag é igual a um, isto é, se um nivel de coeficiente de transformada diferente de zero existe nesta posição de varredura, o elemento de sintaxe binário adicional last_significant_coeff_flag é codificado. Este binário indica se o nivel de coeficiente de transformada significativo atual é o último nivel de coeficiente de transformada significativo dentro do bloco ou se mais níveis de coeficiente de transformada significativos se seguem na ordem de varredura. Se last_significant_coeff_flag indica que não se segue nenhum coeficiente de transformada significativo adicional, nenhum elemento de sintaxe adicional é codificado para especificar o mapa de significância para o bloco. Alternativamente, o número de posições de coeficiente significativas poderia ser sinalizado dentro do fluxo de dados anteriormente à codificação da sequência significant_coeff_flag. Na etapa seguinte, os valores dos níveis de coeficiente de transformada significativos são codificados. Como descrito acima, em alternativa, a transmissão dos níveis pode ser intercalada com a transmissão do mapa de significância. Os valores dos níveis de coeficiente de transformada significativos são codificados numa ordem de varredura adicional, para a qual estão descritos exemplos abaixo. Os três elementos de sintaxe seguintes são utilizados. 0 elemento de sintaxe binário coeff_abs_greater_one indica se o valor absoluto do nível de coeficiente de transformada significativo é maior do que um. Se o elemento de sintaxe binário coeff_abs_greater_one indica que o valor absoluto é maior do que um, um elemento de sintaxe adicional coeff_abs_level_minus_one é enviado, o qual especifica o valor absoluto do nivel de coeficiente de transformada menos um. Finalmente, o elemento de sintaxe binário coeff_sign_flag, que especifica o sinal do valor do coeficiente de transformada, é codificado para cada nivel de coeficiente de transformada significativo.
As formas de realização descritas abaixo permitem reduzir ainda mais a taxa de bits e, assim, aumentar a eficiência de codificação. Para que tal aconteça, estas formas de realização utilizam uma abordagem especifica para a modelagem de contexto de elementos de sintaxe relacionados com os coeficientes de transformada. Em particular, uma nova seleção do modelo de contexto para os elementos de sintaxe significant_coeff_flag, last_significant_coeff_flag, coe f f_abs_g reate r_one e coeff_abs_level_minus_one é utilizado. E, além disso, uma comutação adaptável da varredura durante a codificação/descodificação do mapa de significância (especificando os locais de niveis de coeficiente de transformada diferentes de zero) é descrita. Quanto ao significado dos elementos de sintaxe que devem ser mencionados, é feita referência à parte introdutória acima do presente pedido de patente. A codificação dos elementos de sintaxe significant_coeff_flag e last_significant_coeff_flag, que especificam o mapa de significância, é melhorada por uma varredura adaptativa e uma nova modelagem de contexto com base numa vizinhança definida das posições de varredura já codificadas. Estes novos conceitos resultam numa codificação mais eficiente de mapas de significância (ou seja, uma redução de taxa de bits correspondente) , em especial para tamanhos de bloco grandes.
Um aspeto das formas de realização a seguir delineadas é que a ordem de varredura (isto é, o mapeamento de um bloco de valores de coeficiente de transformada para um conjunto ordenado (vetor) dos niveis de coeficiente de transformada) é adaptada, durante a codificação/descodificação de um mapa de significância com base nos valores dos elementos de sintaxe já codificados/descodifiçados para o mapa de significância.
Numa forma de realização preferida, a ordem de varredura é adaptativamente comutada entre dois ou mais padrões de varredura predefinidos. Numa forma de realização preferida, a comutação pode ocorrer apenas em certas posições de varredura predefinidas. Numa forma de realização adicional preferida da invenção, a ordem de varredura é adaptativamente comutada entre dois padrões de varredura predefinidos. Numa forma de realização preferida, a comutação entre os dois padrões de varredura predefinidos pode ocorrer apenas em certas posições de varredura predefinidas. A vantagem da comutação entre os padrões de varredura é uma taxa de bits reduzida, gue é um resultado de um menor número de elementos de sintaxe codificados. Como exemplo intuitivo e fazendo referência à Figura 6, é freguente o caso em gue os valores de coeficiente de transformada significativos - em especial para grandes blocos de transformada - estão concentrados numa das bordas do bloco 270, 272, porgue os blocos residuais contêm principalmente estruturas horizontais ou verticais. Com a varredura em ziguezague maioritariamente utilizada 274, existe uma probabilidade de cerca de 0,5 de gue a última sub-varredura diagonal da varredura em ziguezague, em gue o último coeficiente significativo é encontrado, inicie a partir do lado em que os coeficientes significativos não estão concentrados. Neste caso, um grande número de elementos de sintaxe para níveis de coeficiente de transformada iguais a zero, tem de ser codificado antes do último valor de coeficiente de transformada diferente de zero ser alcançado. Isto pode ser evitado se as sub-varreduras diagonais forem sempre iniciadas no lado onde os níveis de coeficiente de transformada significativos estão concentrados.
Mais detalhes de uma forma de realização preferida da presente invenção são descritos abaixo.
Como mencionado acima, também para grandes tamanhos de blocos, é preferível manter o número de modelos de contexto razoavelmente pequeno, a fim de permitir uma rápida adaptação dos modelos de contexto e proporcionar uma elevada eficiência de codificação. Assim, um contexto particular deve ser utilizado para mais do que uma posição de varredura. Porém, o conceito de atribuição do mesmo contexto a uma série de posições de varredura sucessivas, como é feito para blocos 8x8 em H.264, em geral não é adequado, uma vez que os niveis de coeficiente de transformada significativos estão geralmente concentrados em certas áreas de um bloco de transformada (esta concentração pode ser um resultado de certas estruturas dominantes que estão normalmente presentes em, por exemplo, blocos residuais) . Para projetar a seleção de contexto, pode-se utilizar a observação acima mencionada de que os niveis de coeficiente de transformada significativos estão geralmente concentrados em determinadas áreas de um bloco de transformada. Na descrição a seguir, são descritos conceitos pelos quais essa observação pode ser explorada.
Numa forma de realização preferida, um bloco de transformada grande (por exemplo, maior do que 8x8) é dividido numa série de sub-blocos retangulares (por exemplo, em 16 sub-blocos) e cada um destes sub-blocos está associado a um modelo de contexto separado para a codificação de signi ficant_coeff_flag e last_significant_coeff_flag (em que modelos de contexto diferentes são utilizados para significant_coeff_flag e last_significant_coeff_flag) . A divisão em sub-blocos pode ser diferente para o signi ficant_coeff_f lag e o last_significant_coeff_flag. 0 mesmo modelo de contexto pode ser utilizado para todas as posições de varredura que estão localizadas num determinado sub-bloco.
Numa forma de realização adicional preferida, um bloco de transformada grande (por exemplo, maior do que 8x8) pode ser dividido numa série de sub-regiões retangulares e/ou não-retangulares e cada uma destas sub-regiões está associada a um modelo de contexto separado para a codificação de
signi ficant_coe ff_flag e/ou last_significant_coeff_flag. A divisão em sub-regiões pode ser diferente para o significant_coeff_flag e o last_significant_coeff_flag. 0 mesmo modelo de contexto é utilizado para todas as posições de varredura que estão localizadas numa determinada sub-região.
Numa forma de realização adicional preferida, o modelo de contexto para a codificação de significant_coeff_flag e/ou last significant_coeff_flag é selecionado com base nos simbolos já codificados numa vizinhança espacial predefinida da posição de varredura atual. A vizinhança predefinida pode ser diferente para diferentes posições de varredura. Numa forma de realização preferida, o modelo de contexto é selecionado com base no número de níveis de coeficiente de transformada significativos na vizinhança espacial predefinida da posição de varredura atual, onde apenas as indicações de significância já codificadas são contadas.
Mais detalhes de uma forma de realização preferida da presente invenção são descritos abaixo.
Como mencionado acima, para tamanhos grandes de blocos, a modelagem de contexto convencional codifica um grande número de binários (que geralmente têm probabilidades diferentes) com um modelo de contexto único para os elementos de sintaxe coeff_abs_greater_one e coeff_abs_level_minus_one. A fim de evitar este inconveniente para o tamanho grande de bloco, os blocos grandes podem, de acordo com uma forma de realização, ser divididos em pequenos sub-blocos quadráticos ou retangulares de um determinado tamanho e uma modelagem de contexto separada é aplicada para cada sub-bloco. Além disso, vários conjuntos de modelos de contexto podem ser utilizados, em que um destes conjuntos de modelos de contexto é selecionado para cada sub-bloco com base numa análise de dados estatísticos dos sub-blocos previamente codificados. Numa forma de realização preferida da presente invenção, o número de coeficientes de transformada maiores do que 2 (ou seja, coeff_abs_level_minus_l>l) no sub-bloco anteriormente codificado do mesmo bloco é utilizado para derivar o conjunto de modelo de contexto para o sub-bloco atual. Estas melhorias para a modelagem de contexto dos elementos de sintaxe coeff_abs_greater_one e coeff_abs_leveI_minus_one resultam numa codificação mais eficiente de ambos os elementos de sintaxe, em especial para os tamanhos de bloco grandes. Numa forma de realização preferida, o tamanho de bloco de um sub-bloco é de 2x2. Noutra forma de realização preferida, o tamanho de bloco de um sub-bloco é de 4x4.
Numa primeira etapa, um bloco maior do que um tamanho pré-definido pode ser dividido em pequenos sub-blocos de um tamanho particular. 0 processo de codificação dos níveis de coeficiente de transformada absolutos mapeia o bloco quadrático ou retangular de sub-blocos em um conjunto ordenado (vetor) de sub-blocos, utilizando uma varredura, em que varreduras diferentes podem ser utilizadas para diferentes blocos. Numa forma de realização preferida, os sub-blocos são processados utilizando uma varredura em ziguezague; os níveis de coeficiente de transformada dentro de um sub-bloco são processados numa varredura em ziguezague inversa, isto é, uma carga de varredura a partir de um coeficiente de transformada pertencente à frequência mais elevada na direção vertical e horizontal para o coeficiente relativamente à frequência mais baixa em ambas as direções. Numa outra forma de realização preferida da invenção, uma varredura em ziguezague inversa é utilizada para a codificação dos sub-blocos e para a codificação dos níveis de coeficiente de transformada dentro dos sub-blocos. Numa outra forma de realização preferida da invenção, a mesma varredura adaptativa que é utilizada para a codificação do mapa de significância (ver acima) é utilizada para processar o bloco completo de níveis de coeficiente de transformada. A divisão de um bloco de transformada grande em sub-blocos evita o problema de utilizar apenas um modelo de contexto para a maioria dos binários de um bloco de transformada grande. Dentro dos sub-blocos, a modelagem de contexto do estado da técnica (como especificado em H.264) ou um contexto fixo podem ser utilizados, dependendo do tamanho real dos sub-blocos. Além disso, as estatísticas (em termos de modelagem de probabilidade) para esses sub-blocos são diferentes das estatísticas de um bloco de transformada com o mesmo tamanho. Esta propriedade pode ser explorada ao estender o conjunto de modelos de contexto para os elementos de sintaxe coeff_abs_greater_one e coeff_abs_level_minus_one. Vários conjuntos de modelos de contexto podem ser fornecidos, e para cada sub-bloco um destes conjuntos de modelos de contexto pode ser selecionado com base nas estatísticas do sub-bloco previamente codificado no bloco de transformada atual ou blocos de transformada previamente codificados. Numa forma de realização preferida da invenção, o conjunto selecionado de modelos de contexto é derivado com base nas estatísticas dos sub-blocos previamente codificados no mesmo bloco. Numa outra forma de realização preferida da invenção, o conjunto selecionado de modelos de contexto é derivado com base nas estatísticas do mesmo sub-bloco de blocos previamente codificados. Numa forma de realização preferida, o número de conjuntos de modelos de contexto é definido como igual a 4, enquanto que, numa outra forma de realização preferida, o número de conjuntos de modelos de contexto é definido como igual a 16. Numa forma de realização preferida, as estatísticas que são utilizadas para derivar o conjunto de modelos de contexto é o número de níveis de coeficiente de transformada absolutos superiores a 2 em sub-blocos previamente codificados. Noutra forma de realização preferida, as estatísticas que são utilizadas para derivar o conjunto de modelos de contexto é a diferença entre o número de coeficientes significativos e o número de níveis de coeficiente de transformada com um valor absoluto superior a 2. A codificação do mapa de significância pode ser realizada como descrito abaixo, ou seja, por uma comutação adaptável da ordem de varredura.
Numa forma de realização preferida, a ordem de varredura para a codificação do mapa de significância é adaptada por comutação entre dois padrões de varredura predefinidos. A comutação entre os padrões de varredura só pode ser feita em determinadas posições de varredura predefinidas. A decisão sobre se o padrão de varredura é comutado depende dos valores dos elementos de sintaxe do mapa de significância já codificados/descodifiçados. Numa forma de realização preferida, ambos os padrões de varredura predefinidos especificam padrões de varredura com sub-varreduras diagonais, semelhante ao padrão de varredura da varredura em ziguezague. Os padrões de varredura estão ilustrados na Figura 8. Ambos os padrões de varredura 300 e 302 consistem de um número de sub-varreduras diagonais para diagonais do canto inferior esquerdo para o canto superior direito ou vice-versa. A varredura das sub-varreduras diagonais (não ilustradas na figura) é feita a partir do canto superior esquerdo para o canto inferior direito para ambos os padrões de varredura predefinidos. Mas a varredura no interior das sub-varreduras diagonais é diferente (tal como ilustrado na figura). Para o primeiro padrão de varredura 300, as sub-varreduras diagonais são varridas a partir do canto inferior esquerdo para o canto superior direito (ilustração à esquerda da Figura 8), e para o segundo padrão de varredura 302, as sub-varreduras diagonais são varridas a partir do canto superior direito para o canto inferior esquerdo (ilustração à direita da Figura 8). Numa forma de realização, a codificação do mapa de significância começa com o segundo padrão de varredura. Durante a codificação/descodificação dos elementos de sintaxe, o número de valores de coeficiente de transformada significativos é contado por dois contadores Ci e C2. O primeiro contador ci conta o número de coeficientes de transformada significativos que estão localizados na parte inferior esquerda do bloco de transformada; ou seja, este contador é incrementado de um, quando um nivel de coeficiente de transformada significativo é codificado/descodifiçado, para o qual a coordenada horizontal x dentro do bloco de transformada é menor do que a coordenada vertical y. 0 segundo contador C2 conta o número de coeficientes de transformada significativos que estão localizados na parte superior direita do bloco de transformada; ou seja, este contador é incrementado de um, quando um nível de coeficiente de transformada significativo é codificado/descodifiçado, para o qual a coordenada horizontal x dentro do bloco de transformada é maior do que a coordenada vertical y. A adaptação dos contadores pode ser efetuada pelo associador 252 na Figura 7 e pode ser descrita pelas fórmulas seguintes, em que t especifica o índice da posição de varredura e os dois contadores são inicializados com zero:
No final de cada sub-varredura diagonal, é decidido pelo associador 252 se o primeiro ou o segundo dos padrões de varredura predefinidos 300, 302 é utilizado para a próxima sub- varredura diagonal. Esta decisão é tomada com base nos valores dos contadores da ci e C2. Quando o contador para a parte inferior esquerda do bloco de transformada é maior do que o contador para a parte inferior esquerda, o padrão de varredura que varre a sub-varredura diagonal do canto inferior esquerdo para o canto superior direito é utilizado; caso contrário (o contador para a parte inferior esquerda do bloco de transformada é menor do que ou igual ao contador para a parte inferior esquerda), o padrão de varredura que varre as sub-varreduras diagonais do canto superior direito para o canto inferior esquerdo é utilizado. Esta decisão pode ser expressa pela fórmula seguinte:
Deve ser notado que a forma de realização acima descrita da invenção pode ser facilmente aplicada a outros padrões de varredura. Como exemplo, o padrão de varredura que é utilizado para macroblocos de campo em H.264 também pode ser decomposto em sub-varreduras. Numa forma de realização adicional preferida, um determinado, mas arbitrário padrão de varredura é decomposto em sub-varreduras. Para cada uma das sub-varreduras, dois padrões de varredura são definidos: um do canto inferior esquerdo para o canto superior direito e um do canto superior direito para o canto inferior esquerdo (como a direção da varredura básica). Além disso, são introduzidos dois contadores que contam o número de coeficientes significativos numa primeira parte (perto da borda inferior esquerda de um bloco de transformada) e numa segunda parte (perto da borda superior direita de um bloco de transformada) dentro das sub-varreduras. Por fim, no final de cada uma das sub-varreduras é decidido (com base nos valores dos contadores), se a próxima sub-varredura é varrida a partir do canto inferior esquerdo para o canto superior direito ou do canto superior direito para o canto inferior esquerdo.
Na descrição a seguir, são apresentadas formas de realização acerca do modo como o descodificador por entropia 250 modela os contextos.
Numa forma de realização preferida, a modelagem de contexto para o significant_coeff_flag é feita como a seguir. Para blocos 4x4, a modelagem de contexto é feita conforme especificado em H.264. Para os blocos 8x8, o bloco de transformada é decomposto em 16 sub-blocos de amostras de 2x2, e cada um destes sub-blocos está associado com um contexto separado. Note-se que este conceito também pode ser estendido para tamanhos grandes de blocos, um número diferente de sub-blocos, e também sub-regiões não retangulares, como descrito acima.
Numa forma de realização adicional preferida, a seleção do modelo de contexto para blocos de transformada maiores (por exemplo, para os blocos maiores que 8x8) é baseada no número de coeficientes de transformada significativos já codificados numa vizinhança pré-definida (dentro do bloco de transformada). Um exemplo para a definição de vizinhança, o que corresponde a uma forma de realização preferida da invenção, encontra-se ilustrado na Figura 9. As cruzes com um circulo em volta das mesmas são vizinhos disponíveis, que são sempre levados em conta para a avaliação e as cruzes com um triângulo são vizinhos que são avaliados em função da posição de varredura atual e a direção de varredura atual): • Se a posição de varredura atual se situa no interior do canto esquerdo 304 de 2x2, um modelo de contexto separado é utilizado para cada posição de varredura (Figura 9, ilustração da esquerda) • Se a posição de varredura atual não se situa dentro do canto esquerdo de 2x2 e não está localizada na primeira linha ou na primeira coluna do bloco de transformada, em seguida, os vizinhos ilustrados à direita na Figura 9 são utilizados para avaliar o número de coeficientes de transformada significativos na vizinhança da posição de varredura atual "x", sem nada em torno do mesmo. • Se a posição de varredura atual "x", sem nada em torno do mesmo, cai na primeira linha do bloco de transformada, em seguida, os vizinhos especifiçados na ilustração à direita da Figura 10 são utilizados • Se a posição de varredura atual "x" cai na primeira coluna do bloco, em seguida, os vizinhos especificados na ilustração à esquerda da figura 10 são utilizados.
Por outras palavras, o descodificador 250 pode ser configurado para extrair sequencialmente os elementos de sintaxe do mapa de significância pela descodificação por entropia adaptativa ao contexto através da utilização de contextos que são selecionados individualmente para cada um dos elementos de sintaxe do mapa de significância, dependendo de um número de posições em que, de acordo com os coeficientes de transformada significativos dos elementos de sintaxe do mapa de significância extraídos anteriormente e associados estão situados, as posições sendo limitadas a esses que se encontram numa vizinhança da posição ("x" na Figura 9 do lado direito e Figura 10, ambos os lados, bem como qualquer uma das posições marcadas do lado esquerdo da Figura 9) com a qual o respetivo elemento de sintaxe do mapa de significância atual está associado. Como mostrado, a vizinhança da posição com a qual o respetivo elemento de sintaxe atual está associado, pode simplesmente compreender posições, quer diretamente adjacentes a ou separadas da posição com a qual o respetivo elemento de sintaxe do mapa de significância está associado, numa posição na direção vertical e/ou uma posição na direção horizontal, no máximo. Alternativamente, apenas posições diretamente adjacentes ao respetivo elemento de sintaxe atual podem ser levadas em conta. Ao mesmo tempo, o tamanho do bloco de coeficiente de transformada pode ser igual a ou maior do que posições de 8x8.
Numa forma de realização preferida, o modelo de contexto que é utilizado para a codificação de um significant_coeff_flag particular é escolhido em função do número de níveis de coeficiente de transformada significativos já codificados nas vizinhanças definidas. Aqui, o número de modelos de contexto disponíveis pode ser menor do que o valor possível para o número de níveis de coeficiente de transformada significativos na vizinhança definida. O codificador e descodificador podem conter uma tabela (ou um mecanismo de mapeamento diferente) para mapear o número de níveis de coeficiente de transformada significativos na vizinhança definida para um índice de modelo de contexto.
Numa forma de realização adicional preferida, o índice de modelo de contexto escolhido depende do número de níveis de coeficiente de transformada significativos na vizinhança definida e de um ou mais parâmetros adicionais, como o tipo de vizinhança utilizado ou a posição de varredura ou um valor quantizado para a posição de varredura.
Para a codificação de last_significant_coeff_flag, uma modelagem de contexto semelhante à de significant_coeff_flag pode ser utilizada. No entanto, a medida de probabilidade para o last_significant_coeff_flag depende, principalmente, de uma distância da posição de varredura atual para o canto superior esquerdo do bloco de transformada. Numa forma de realização preferida, o modelo de contexto para a codificação de last significant_coeff_flag é escolhido com base na varredura diagonal, em que a posição de varredura atual se encontra (isto é, é escolhido com base em x + y, em que x e y representam a localização horizontal e vertical de uma posição de varredura dentro do bloco de transformada, respetivamente, no caso da forma de realização anterior da Figura 8, ou com base na quantidade de sub-varreduras por entre a sub-varredura atual e a posição superior esquerda CC (tal como o índice de sub-varredura menos 1)). Numa forma de realização preferida da invenção, o mesmo contexto é utilizado para diferentes valores de x + y. A medida de distância, ou seja, x + y ou o índice de sub-varredura é mapeado no conjunto de modelos de contexto de uma certa maneira (por exemplo, ao quantizar x + y ou o índice de sub- varredura) , onde o número de valores possíveis para a medida de distância é maior do que o número de modelos de contexto disponíveis para a codificação de last_significant_coeff_flag.
Numa forma de realização preferida, são utilizados esquemas de modelagem de contexto diferentes para diferentes tamanhos de blocos de transformada.
Em seguida, é descrita a codificação dos níveis de coeficiente de transformada absolutos.
Numa forma de realização preferida, o tamanho dos sub-blocos é de 2x2 e a modelagem de contexto no interior dos sub-blocos está desativada, isto é, um modelo de contexto único é utilizado para todos os coeficientes de transformada dentro de um sub-bloco de 2x2. Somente os blocos maiores do que 2x2 podem ser afetados pelo processo de subdivisão. Numa forma de realização adicional preferida da presente invenção, o tamanho dos sub-blocos é de 4x4 e a modelagem de contexto no interior dos sub-blocos é feita como em H.264; apenas os blocos maiores do que 4x4 são afetados pelo processo de subdivisão.
Quanto à ordem de varredura, numa forma de realização preferida, uma varredura em ziguezague 320 é utilizada para varrer os sub-blocos 322 de um bloco de transformada 256, ou seja, ao longo de uma direção de um aumento substancial da frequência, enquanto os coeficientes de transformada dentro de um sub-bloco são varridos numa varredura em ziguezague inversa 326 (Figura 11). Numa forma de realização adicional preferida da presente invenção, ambos os sub-blocos 322 e os niveis de coeficiente de transformada no interior dos sub-blocos 322 são varridos utilizando uma varredura em ziguezague inversa (como a ilustração na Figura 11, onde a seta 320 é invertida) . Numa outra forma de realização preferida, a mesma varredura adaptativa que a da codificação do mapa de significância é utilizada para processar os niveis de coeficiente de transformada, onde a decisão de adaptação é a mesma, de modo que exatamente a mesma varredura é utilizada tanto para a codificação do mapa de significância como para a codificação dos valores de níveis de coeficiente de transformada. Deve ser notado que a varredura em si não costuma depender das estatísticas selecionadas ou do número de conjuntos de modelos de contexto ou da decisão para ativar ou desativar a modelagem de contexto dentro dos sub-blocos.
Em seguida são descritas formas de realização para a modelagem de contexto para os níveis de coeficiente.
Numa forma de realização preferida, a modelagem de contexto para um sub-bloco é semelhante à modelagem de contexto para blocos 4x4 em H.264 como foi descrito acima. O número de modelos de contexto que são utilizados para a codificação do elemento de sintaxe coeff_abs_greater_one e o primeiro binário do elemento de sintaxe coeff_abs_level_minus_one é igual a cinco, com, por exemplo, a utilização de diferentes conjuntos de modelos de contexto para os dois elementos de sintaxe. Numa forma de realização adicional preferida, a modelagem de contexto dentro dos sub-blocos é desativada e apenas um modelo de contexto predefinido é utilizado dentro de cada sub-bloco. Para ambas as formas de realização, o conjunto de modelos de contexto para um sub-bloco 322 é selecionado entre um número pré-definido de conjuntos de modelos de contexto. A seleção do conjunto de modelos de contexto para um sub-bloco 322 é baseada em determinadas estatísticas de um ou mais sub-blocos já codificados. Numa forma de realização preferida, as estatísticas utilizadas para selecionar um conjunto de modelos de contexto para um sub-bloco são tiradas a partir de um ou mais sub-blocos já codificados no mesmo bloco 256. 0 modo como as estatísticas são utilizadas para derivar o conjunto de modelos de contexto selecionado é descrito abaixo. Numa forma de realização adicional preferida, as estatísticas são tiradas a partir do mesmo sub-bloco num bloco previamente codificado com o mesmo tamanho de bloco, tal como o bloco 40a e 40a' na Figura 2b. Numa outra forma de realização preferida da invenção, as estatísticas são tiradas a partir de um sub-bloco vizinho definido no mesmo bloco, o que depende da varredura selecionada para os sub-blocos. Além disso, é importante notar que a fonte de dados estatísticos deve ser independente da ordem de varredura e do modo como as estatísticas são criadas para derivar o conjunto de modelos de contexto.
Numa forma de realização preferida, o número de conjuntos de modelos de contexto é igual a quatro, enquanto que, numa outra forma de realização preferida, o número de conjuntos de modelos de contexto é igual a 16. Geralmente, o número de conjuntos de modelos de contexto não é fixo e deve ser adaptado de acordo com as estatísticas selecionadas. Numa forma de realização preferida, o conjunto de modelos de contexto para um sub-bloco 322 é derivado com base no número de níveis de coeficiente de transformada absolutos superiores a dois em um ou mais sub-blocos já codificados. Um índice para o conjunto de modelos de contexto é determinado por mapeamento do número de níveis de coeficiente de transformada absolutos superiores a dois no sub-bloco de referência ou sub-blocos de referência para um conjunto de índices de modelo de contexto predefinidos. Este mapeamento pode ser implementado por quantização do número de níveis de coeficiente de transformada absolutos superiores a dois ou por uma tabela predefinida. Numa forma de realização adicional preferida, o conjunto de modelos de contexto para um sub-bloco é derivado com base na diferença entre o número de niveis de coeficiente de transformada significativos e o número de níveis de coeficiente de transformada absolutos superiores a dois em um ou mais sub-blocos já codificados. Um índice para o conjunto de modelos de contexto é determinado pelo mapeamento desta diferença para um conjunto de índices de modelo de contexto predefinidos. Este mapeamento pode ser implementado por quantização da diferença entre o número de níveis de coeficiente de transformada significativos e o número de níveis de coeficiente de transformada absolutos superiores a dois ou por uma tabela predefinida.
Numa outra forma de realização preferida, quando a mesma varredura adaptativa é utilizada para processar os niveis de coeficientes de transformada absolutos e o mapa de significância, as estatísticas parciais dos sub-blocos nos mesmos blocos podem ser utilizadas para derivar o conjunto de modelos de contexto para o sub-bloco atual, ou, se disponível, as estatísticas dos sub-blocos previamente codificados nos blocos de transformada previamente codificados podem ser utilizadas. Isto significa que, por exemplo, em vez de utilizar o número absoluto de níveis de coeficiente de transformada absolutos superiores a dois no (s) sub-bloco(s) para a derivação do modelo de contexto, o número de níveis de coeficiente de transformada absolutos já codificados superiores a dois multiplicado pela relação do número de coeficientes de transformada no (s) sub-bloco (s) e o número de coeficientes de transformada já codificados no (s) sub-bloco (s) é utilizado; ou, em vez de utilizar a diferença entre o número de níveis de coeficiente de transformada significativos e o número de níveis de coeficiente de transformada absolutos superiores a dois no (s) sub-bloco(s) , a diferença entre o número de níveis de coeficiente de transformada significativos já codificados e o número de níveis de coeficiente de transformada absolutos já codificados superiores a dois multiplicado pela relação do número de coeficientes de transformada no (s) sub-bloco (s) e o número de coeficientes de transformada já codificados no (s) sub- bloco (s) é utilizado.
Para a modelagem de contexto dentro dos sub-blocos, basicamente o inverso da modelagem de contexto do estado da técnica para H.264 pode ser utilizado. Isto significa que, quando a mesma varredura adaptativa é utilizada para processar os níveis de coeficiente de transformada absolutos e o mapa de significância, os níveis de coeficiente de transformada são basicamente codificados numa ordem de varredura para a frente, em vez de uma ordem de varredura inversa como em H.264. Assim, a comutação de modelo de contexto tem de ser adaptada em conformidade. De acordo com uma forma de realização, a codificação dos níveis de coeficiente de transformada começa com um primeiro modelo de contexto para os elementos de sintaxe coeff_abs_greater_one e coeff_abs_level_minus_one, e é comutado para o modelo de contexto seguinte no conjunto, quando dois elementos de sintaxe coeff_abs_greater_one iguais a zero foram codificados desde a última comutação do modelo de contexto. Por outras palavras, a seleção do contexto é dependente do número de elementos de sintaxe já codificados coeff_abs_greater_one superiores a zero, na ordem de varredura. 0 número de modelos de contexto para coeff_abs_greater_one e para coeff_abs_level_minus_one pode ser o mesmo que em H.264.
Assim, as formas de realização acima podem ser aplicadas ao campo de processamento de sinais digitais e, em particular, a descodificadores e codificadores de imagem e de vídeo. Em particular, as formas de realização acima permitem uma codificação de elementos de sintaxe referentes a coeficientes de transformada em imagem baseada em blocos e codecs de vídeo, com uma modelagem de contexto melhorada para elementos de sintaxe referentes a coeficientes de transformada que são codificados com um codificador por entropia, que emprega uma modelagem de probabilidade. Em comparação com o estado da técnica, uma melhor eficiência de codificação é alcançada, em particular para os blocos de transformada grandes.
Embora alguns aspetos tenham sido descritos no contexto de um aparelho, é evidente que estes aspetos representam também uma descrição do método correspondente, onde um bloco ou dispositivo corresponde a uma etapa do método, ou a uma característica de uma etapa do método. De forma análoga, os aspetos descritos no contexto de uma etapa do método também representam uma descrição de um bloco correspondente ou item ou caracterí stica de um aparelho correspondente. 0 sinal codificado inventivo para a representação do bloco de transformada ou do mapa de significância, respetivamente, pode ser armazenado num meio de armazenamento digital ou pode ser transmitido num meio de transmissão, tal como um meio de transmissão sem fios ou um meio de transmissão com fios, tal como a Internet.
Dependendo de determinados requisitos de implementação, as formas de realização da invenção podem ser implementadas em hardware ou em software. A aplicação pode ser realizada utilizando um meio de armazenamento digital, por exemplo, um disquete, um DVD, um Blue-Ray, um CD, uma ROM, uma PROM, uma EPROM, uma EEPROM ou uma memória FLASH, com sinais de controlo legíveis eletronicamente armazenados na mesma, que cooperam (ou são capazes de cooperar) com um sistema de computador programável de modo que o respetivo método seja realizado. Portanto, o meio de armazenamento digital pode ser legível por computador.
Algumas formas de realização de acordo com a invenção compreendem um suporte de dados com sinais de controlo legíveis eletronicamente, os quais são capazes de cooperar com um sistema de computador programável, de modo que um dos métodos aqui descritos é realizado.
Geralmente, as formas de realização da presente invenção podem ser implementadas como um produto de programa de computador com um código de programa, o código de programa sendo operativo para executar um dos métodos quando o produto de programa de computador é executado num computador. 0 código de programa pode, por exemplo, ser armazenado num suporte legível por máquina..
Outras formas de realização compreendem o programa de computador para executar um dos métodos descritos no presente documento, armazenado num suporte legível por máquina.
Por outras palavras, uma forma de realização do método da invenção é, portanto, um programa de computador que tem um código de programa para a realização de um dos métodos aqui descritos, quando o programa de computador é executado num computador.
Uma forma de realização adicional dos métodos da invenção é, portanto, um suporte de dados (ou um meio de armazenamento digital, ou um meio legível por computador) , que compreende, nele registados, o programa de computador para executar um dos métodos aqui descritos.
Uma forma de realização adicional do método da invenção é, assim, um fluxo de dados ou uma sequência de sinais que representam o programa de computador para a realização de um dos métodos aqui descritos. 0 fluxo de dados ou a sequência de sinais podem, por exemplo, ser configurados para serem transferidos através de um link de comunicação de dados, por exemplo através da Internet.
Uma forma de realização compreende um meio de processamento, por exemplo, um computador ou um dispositivo lógico programável, configurado para ou adaptado para executar um dos métodos aqui descritos.
Uma forma de realização adicional compreende um computador tendo nele instalado o programa de computador para executar um dos métodos aqui descritos.
Em algumas formas de realização, um dispositivo lógico programável (por exemplo, uma rede de portas lógicas programáveis) pode ser utilizado para realizar algumas ou todas as funcionalidades dos métodos aqui descritos. Em algumas formas de realização, uma rede de portas lógicas programáveis pode cooperar com um microprocessador para executar um dos métodos aqui descritos. Geralmente, os métodos são, de preferência, realizados por qualquer dispositivo de hardware.
As formas de realização acima descritas são meramente ilustrativas dos princípios da presente invenção. Entende-se que modificações e variações das disposições e detalhes aqui descritos serão evidentes para outros especialistas na matéria. É intenção, portanto, ser limitada apenas pelo âmbito das reivindicações de patente seguintes e não pelos detalhes específicos apresentados a título de descrição e explicação das formas de realização da presente invenção.
Uma forma de realização fornece um aparelho para descodificar um bloco de coeficiente de transformada, que compreende: um descodificador 250 configurado para extrair um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada e, em seguida, os valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada a partir de um fluxo de dados, em que, ao extrair os valores dos coeficientes de transformada significativos, são extraídos sequencialmente os valores por descodificação por entropia adaptativa ao contexto; e um associador 252 configurado para associar sequencialmente os valores extraídos sequencialmente com as posições dos coeficientes de transformada significativos numa ordem de varredura de coeficiente predeterminada entre as posições do bloco de coeficiente de transformada, de acordo com a qual o bloco de coeficiente de transformada é varrido em sub-blocos 322 do bloco de coeficiente de transformada 256 utilizando uma ordem de varredura de sub-bloco 320, adicionalmente, fazendo a varredura das posições dos coeficientes de transformada dentro dos sub-blocos numa ordem de sub-varredura de posição 324, em que o descodif icador 250 está configurado para utilizar, ao sequencialmente descodificar por entropia adaptativa ao contexto os valores dos valores de coeficiente de transformada significativos, um conjunto selecionado de um número de contextos de uma pluralidade de conjuntos de um número de contextos, a seleção do conjunto selecionado sendo executada para cada sub-bloco, dependendo dos valores dos coeficientes de transformada dentro de um sub-bloco do bloco de coeficiente de transformada, já tendo sido percorrido na ordem de varredura de sub-bloco, ou os valores dos coeficientes de transformada de um sub-bloco co-localizado num bloco de coeficiente de transformada anteriormente descodificado de tamanho idêntico.
De acordo com um aspeto do aparelho, o descodificador 250 está configurado para sequencialmente extrair os elementos de sintaxe do primeiro tipo por descodificação por entropia adaptativa ao contexto através da utilização de contextos que são selecionados individualmente para cada dos elementos de sintaxe do primeiro tipo dependendo de um número de posições nas quais, de acordo com os elementos de sintaxe do primeiro tipo previamente extraídos e associados estão situados coeficientes de transformada significativos, numa vizinhança da posição com a qual o respetivo elemento de sintaxe do primeiro tipo está associado.
De acordo com um outro aspeto do aparelho, o descodificador está ainda configurado de tal modo que a vizinhança da posição, com a qual o respetivo elemento de sintaxe do primeiro tipo está associado, meramente compreende posições diretamente adjacentes a, ou posições, quer diretamente adjacentes a, ou separadas a partir da posição com a qual o respetivo elemento de sintaxe do primeiro tipo está associado, numa posição na direção vertical e/ou numa posição na direção horizontal, no máximo, em que o tamanho do bloco do coeficiente de transformada é igual a ou maior do que posições de 8x8.
De acordo com um outro aspeto do aparelho, o descodificador está ainda configurado para mapear o número de posições nas quais, de acordo com os elementos de sintaxe do primeiro tipo previamente extraídos e associados estão situados coeficientes de transformada significativos, na vizinhança da posição com a qual o respetivo elemento de sintaxe do primeiro tipo está associado, a um índice de contexto de um conjunto predeterminado de índices de contexto possíveis sob ponderação com um número de posições disponíveis na vizinhança da posição com a qual o respetivo elemento de sintaxe do primeiro tipo está associado.
Uma outra forma de realização fornece um aparelho para descodificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada a partir de um fluxo de dados que compreende: um descodificador 250 configurado para extrair um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada e, em seguida, os valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada a partir de um fluxo de dados, em que, ao extrair o mapa de significância, são extraídos sequencialmente os elementos de sintaxe do primeiro tipo do fluxo de dados por descodificação por entropia adaptativa ao contexto, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada, se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo; e um associador 250 configurado para associar sequencialmente os elementos de sintaxe do primeiro tipo extraídos sequencialmente para as posições do bloco de coeficiente de transformada numa ordem de varredura pré-determinada entre as posições do bloco de coeficiente de transformada, em que o descodificador está configurado para utilizar, ao descodificar por entropia adaptativa ao contexto os elementos de sintaxe do primeiro tipo, contextos que são selecionados individualmente para cada um dos elementos de sintaxe do primeiro tipo, dependendo de um número de posições nas quais, de acordo com os elementos de sintaxe do primeiro tipo previamente extraídos e associados estão situados coeficientes de transformada significativos, numa vizinhança da posição com a qual um elemento de sintaxe atual do primeiro tipo está associado.
De acordo com um aspeto do aparelho, o descodificador 250 está ainda configurado de tal modo que a vizinhança da posição com a qual o respetivo elemento de sintaxe do primeiro tipo está associado meramente compreende posições diretamente adjacentes a, ou posições, quer diretamente adjacentes a ou separadas da posição com a qual o respetivo elemento de sintaxe do primeiro tipo está associado, numa posição na direção vertical e/ou numa posição na direção horizontal, no máximo, em que o tamanho do bloco de coeficiente de transformada é igual a ou maior do que posições de 8x8.
Uma outra forma de realização fornece um descodificador baseado em transformada configurado para descodificar um bloco de coeficiente de transformada utilizando um aparelho 150 para a descodificação de um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada a partir de um fluxo de dados, e para executar 152 uma transformada do domínio espectral para o domínio espacial para o bloco de coeficiente de transformada.
Uma outra forma de realização fornece um descodificador preditivo que compreende: um descodificador baseado em transformada 150, 152 configurado para descodificar um bloco de coeficiente de transformada utilizando um aparelho para descodificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada a partir de um fluxo de dados, de acordo com qualquer das reivindicações 1 a 11, e para realizar uma transformada do domínio espectral para o domínio espacial para o bloco de coeficiente de transformada para se obter um bloco residual; um preditor 156 configurado para fornecer uma predição para um bloco de uma matriz de amostras de informação representando um sinal de informação espacialmente amostrado; e um combinador 154 configurado para combinar a predição do bloco e do bloco residual para reconstruir a matriz de amostras de informação.
Uma outra forma de realização fornece um aparelho para codificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada num fluxo de dados, sendo o aparelho configurado para sequencialmente codificar os elementos de sintaxe do primeiro tipo para o fluxo de dados por codificação por entropia, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada, pelo menos, se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo, em que o aparelho está ainda configurado para os elementos de sintaxe do primeiro tipo no fluxo de dados numa ordem de varredura entre as posições do bloco de coeficiente de transformada, que depende das posições dos coeficientes de transformada significativos indicadas pelos elementos de sintaxe do primeiro tipo previamente codificados.
Uma outra forma de realização fornece um aparelho para codificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada num fluxo de dados, sendo o aparelho configurado para codificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada e, em seguida, os valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada para o fluxo de dados, em que ao codificar o mapa de significância, são sequencialmente codificados os elementos de sintaxe do primeiro tipo para o fluxo de dados por codificação por entropia adaptativa ao contexto, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo, em que o aparelho está ainda configurado para sequencialmente codificar os elementos de sintaxe do primeiro tipo para o fluxo de dados numa ordem de varredura pré-determinada entre as posições do bloco de coeficiente de transformada, em que o aparelho está configurado para utilizar, na codificação por entropia adaptativa ao contexto, cada um dos elementos de sintaxe do primeiro tipo, contextos que são selecionados individualmente para os elementos de sintaxe do primeiro tipo, dependendo de um número de posições nas quais estão situados os coeficientes de transformada significativos e com as quais os elementos de sintaxe do primeiro tipo previamente codificados estão associados, numa vizinhança da posição com a qual um elemento de sintaxe do primeiro tipo atual está associado.
Uma outra forma de realização fornece um método para descodificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada a partir de um fluxo de dados, o método compreendendo: sequencialmente extrair elementos de sintaxe do primeiro tipo do fluxo de dados, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada, pelo menos, se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo; e associar sequencialmente os elementos de sintaxe do primeiro tipo extraídos sequencialmente para as posições do bloco de coeficiente de transformada numa ordem de varredura entre as posições do bloco de coeficiente de transformada, o que depende das posições dos coeficientes de transformada significativos indicadas pelos elementos de sintaxe do primeiro tipo anteriormente extraídos e associados.
Uma outra forma de realização fornece um método para descodificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada a partir de um fluxo de dados, compreendendo: extrair um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada e, em seguida, os valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada de um fluxo de dados, em que, ao extrair o mapa de significância, são sequencialmente extraídos os elementos de sintaxe do primeiro tipo a partir do fluxo de dados por descodificação por entropia adaptativa ao contexto, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo; e associar sequencialmente os elementos de sintaxe do primeiro tipo extraídos sequencialmente para as posições de bloco de coeficiente de transformada numa ordem de varredura pré-determinada entre as posições do bloco de coeficiente de transformada, em que, na descodificação por entropia adaptativa ao contexto dos elementos de sintaxe do primeiro tipo, são utilizados contextos que são selecionados individualmente para cada um dos elementos de sintaxe do primeiro tipo, dependendo de um número de posições nas quais de acordo com os elementos de sintaxe do primeiro tipo previamente extraídos e associados estão situados os coeficientes de transformada significativos, numa vizinhança da posição com a qual um elemento de sintaxe atual do primeiro tipo está associado.
Uma outra forma de realização fornece um método para codificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada num fluxo de dados, o método compreendendo: sequencialmente codificar os elementos de sintaxe do primeiro tipo para o fluxo de dados por codificação por entropia, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada, pelo menos, se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo, com a codificação dos elementos de sintaxe do primeiro tipo para o fluxo de dados numa ordem de varredura entre as posições do bloco de coeficiente de transformada, o que depende das posições dos coeficientes de transformada significativos indicadas pelos elementos de sintaxe do primeiro tipo previamente codificados.
Uma outra forma de realização fornece um método para codificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada num fluxo de dados, o método compreendendo: codificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada e, em seguida, os valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada para o fluxo de dados, em que, ao codificar o mapa de significância, são sequencialmente codificados os elementos de sintaxe do primeiro tipo para o fluxo de dados por codificação por entropia adaptativa ao contexto, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo, em que a codificação sequencial dos elementos de sintaxe do primeiro tipo para o fluxo de dados é realizada numa ordem de varredura pré-determinada entre as posições do bloco de coeficiente de transformada, e ao codificar por entropia adaptativa ao contexto cada um dos elementos de sintaxe do primeiro tipo, são utilizados contextos que são selecionados individualmente para os elementos de sintaxe do primeiro tipo dependendo de um número de posições nas quais os coeficientes de transformada significativos estão situados e com as quais os elementos de sintaxe do primeiro tipo previamente codificados estão associados, numa vizinhança da posição com a qual um elemento de sintaxe atual do primeiro tipo está associado.
Uma outra forma de realização fornece um fluxo de dados tendo nele codificado um mapa de signif icância que indica as posições de coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada, em que os elementos de sintaxe do primeiro tipo são sequencialmente codificados para o fluxo de dados por codificação por entropia, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada, pelo menos, se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo, em que os elementos de sintaxe do primeiro tipo são codificados para o fluxo de dados numa ordem de varredura entre as posições do bloco de coeficiente de transformada, que depende das posições dos coeficientes de transformada significativos indicadas pelos elementos de sintaxe do primeiro tipo previamente codificados.
Uma outra forma de realização fornece um fluxo de dados tendo nele codificado um mapa de signif icância que indica as posições de coeficientes de transformada significativos dentro de um bloco de coeficiente de transformada, em que um mapa de significância que indica as posições de coeficientes de transformada significativos dentro do bloco de coeficiente de transformada, seguido dos valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada que são codificados para o fluxo de dados, em que, dentro do mapa de significância, os elementos de sintaxe do primeiro tipo são sequencialmente codificados para o fluxo de dados por codificação por entropia adaptativa ao contexto, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo, em que os elementos de sintaxe do primeiro tipo são sequencialmente codificados para o fluxo de dados numa ordem de varredura pré-determinada entre as posições do bloco de coeficiente de transformada, e os elementos de sintaxe do primeiro tipo são codificados por entropia adaptativa ao contexto no fluxo de dados utilizando contextos que são selecionados individualmente para os elementos de sintaxe do primeiro tipo, dependendo de um número de posições nas quais estão situados coeficientes de transformada significativos e com as quais os elementos de sintaxe do primeiro tipo previamente codificados no fluxo de dados estão associados, numa vizinhança da posição com a qual um elemento de sintaxe do primeiro tipo atual está associado.

Claims (18)

  1. REIVINDICAÇÕES
    1. Aparelho para descodificar um bloco de coeficiente de transformada compreendendo: um descodificador (250) configurado para extrair um mapa de significância que indica as posições de coeficientes de transformada significativos dentro do bloco de coeficiente de transformada e, em seguida, os valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada a partir de um fluxo de dados, em que, ao extrair os valores dos coeficientes de transformada significativos, são extraídos sequencialmente os valores por descodificação por entropia adaptativa ao contexto; e um associador (252) configurado para associar sequencialmente os valores extraídos sequencialmente com as posições dos coeficientes de transformada significativos numa ordem de varredura de coeficiente predeterminada entre as posições do bloco de coeficiente de transformada, caracterizado por o bloco de coeficiente de transformada ser varrido em sub-blocos (322) do bloco de coeficientes de transformada (256) utilizando uma ordem de varredura de sub-bloco (320) adicionalmente, fazendo a varredura das posições dos coeficientes de transformada dentro dos sub-blocos numa posição de ordem de sub-varredura (324), em que o descodificador (250) está configurado para utilizar, ao descodificar sequencialmente por entropia adaptativa ao contexto os valores dos valores de coeficiente de transformada significativos, um conjunto selecionado de um número de contextos a partir de uma pluralidade de conjuntos de um número de contextos, em que o descodificador (250) está configurado de tal modo que a seleção do conjunto selecionado que é realizada para cada sub-bloco, depende dos valores dos coeficientes de transformada dentro de um sub-bloco do bloco de coeficiente de transformada, já tendo sido percorrido na ordem de varredura de sub-bloco, ou de tal modo que a seleção do conjunto selecionado que é realizada para cada sub-bloco, depende dos valores dos coeficientes de transformada de um sub-bloco co-localizado num bloco de coeficiente de transformada previamente descodificado de tamanho idêntico.
  2. 2. Aparelho de acordo com a reivindicação 1, em que o descodificador está configurado de tal forma que o número de contextos da pluralidade de conjuntos de contextos é maior do que um, e configurado para, ao descodificar sequencialmente por entropia adaptativa ao contexto os valores dos valores de coeficiente de transformada significativos dentro de um sub-bloco utilizando o conjunto selecionado do número de contextos para o respetivo sub-bloco, atribuir exclusivamente os contextos do conjunto selecionado do número de contextos para as posições dentro do respetivo sub-bloco.
  3. 3. Aparelho de acordo com a reivindicação 1 ou 2, em que o associador (252) está configurado de tal modo que a ordem de varredura de sub-bloco é feita em modo ziguezague a partir de um sub-bloco, incluindo uma posição de uma frequência mais baixa numa direção vertical e numa direção horizontal para um sub-bloco, incluindo uma posição de uma frequência mais elevada em ambas as direções vertical e horizontal, enquanto que a ordem de sub-varredura de posição é feita, em cada sub-bloco, em forma de ziguezague, a partir de uma posição dentro do respetivo sub-bloco, relativamente a uma frequência mais elevada numa direção vertical e numa direção horizontal para uma posição do respetivo sub-bloco relativamente a uma frequência mais baixa em ambas as direções vertical e horizontal.
  4. 4. Aparelho de acordo com qualquer uma das reivindicações 1 a 3, em que o descodificador está configurado para, ao extrair o mapa de significância a partir do fluxo de dados, extrair sequencialmente os elementos de sintaxe do primeiro tipo a partir do fluxo de dados, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada (256) , pelo menos, se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo; o associador (252) está configurado para associar sequencialmente os elementos de sintaxe do primeiro tipo extraídos sequencialmente para as posições do bloco de coeficiente de transformada numa ordem de varredura entre as posições do bloco de coeficiente de transformada, o que depende das posições dos coeficientes de transformada significativos indicadas pelos elementos de sintaxe do primeiro tipo previamente extraídos e associados.
  5. 5. Aparelho de acordo com a reivindicação 4, em que o descodificador (250) está ainda configurado para reconhecer, com base numa informação no fluxo de dados, e independentemente de um número de posições dos coeficientes de transformada não significativos indicado pelos elementos de sintaxe do primeiro tipo previamente extraídos e associados, se numa posição com a qual um elemento de sintaxe do primeiro tipo atualmente extraído está associado, o que indica que nesta posição está situado um coeficiente de transformada significativo, e um último coeficiente de transformada significativo está situado no bloco de coeficiente de transformada.
  6. 6. Aparelho de acordo com a reivindicação 4 ou 5, em que o descodificador (250) está ainda configurado para extrair, entre os elementos de sintaxe do primeiro tipo que indicam que na respetiva posição associada um coeficiente de transformada significativo está situado e elementos de sintaxe do primeiro tipo imediatamente posteriores, elementos de sintaxe do segundo tipo do fluxo de bits que indicam, para as posições associadas nas quais um coeficiente de transformada significativo está situado, se a respetiva posição associada é o último coeficiente de transformada significativo no bloco de coeficiente de transformada.
  7. 7. Aparelho de acordo com qualquer uma das reivindicações 4 a 6, em que o descodif icador (250) está ainda configurado para extrair em série, após a extração de todos os elementos de sintaxe do primeiro tipo do bloco de coeficiente de transformada, os valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada do fluxo de dados por descodificação por entropia adaptativa ao contexto, em que o associador (252) está configurado para associar sequencialmente os valores sequencialmente extraídos com as posições dos coeficientes de transformada significativos numa ordem de varredura de coeficiente predeterminada entre as posições do bloco de coeficiente de transformada, de acordo com as quais o bloco de coeficiente de transformada é varrido em sub-blocos (322) do bloco de coeficiente de transformada (256) utilizando uma ordem de varredura de sub-bloco (320) adicionalmente, fazendo a varredura das posições dos coeficientes de transformada dentro dos sub-blocos (322), numa ordem de sub-varredura de posição (324), em que o descodificador está configurado para utilizar, ao descodificar sequencialmente por entropia adaptativa ao contexto os valores dos valores de coeficiente de transformada significativos, um conjunto selecionado de um número de contextos de uma pluralidade de conjuntos de um número de contextos, a seleção do conjunto selecionado sendo realizada para cada sub-bloco, dependendo dos valores de coeficientes de transformada dentro de um sub-bloco do bloco de coeficiente de transformada, já tendo sido percorrido na ordem de varredura de sub-bloco (320), ou os valores dos coeficientes de transformada de um sub-bloco co-localizado num bloco de coeficiente de transformada previamente descodificado de tamanho idêntico.
  8. 8. Aparelho de acordo com qualquer das reivindicações 4 a 7, em que o associador (252) está ainda configurado para associar sequencialmente os elementos de sintaxe do primeiro tipo sequencialmente extraídos para as posições do bloco de coeficiente de transformada ao longo de uma sequência de subcaminhos que se estendem entre um primeiro par de lados adjacentes do bloco de coeficiente de transformada ao longo do qual as posições de uma frequência mais baixa numa direção horizontal e as posições de uma frequência mais elevada numa direção vertical, respetivamente, são posicionadas, e um segundo par de lados adjacentes do bloco de coeficiente de transformada ao longo do qual as posições de uma frequência mais baixa na direção vertical e as posições de uma frequência mais elevada na direção horizontal, respetivamente, são posicionadas, com os subcaminhos tendo uma distância crescente a partir de uma posição de frequência mais baixa em ambas as direções vertical e horizontal, e em que o associador (252) está confiqurado para determinar uma direção (300, 302) ao longo da qual os elementos de sintaxe do primeiro tipo extraídos sequencialmente estão associados às posições do bloco de coeficiente de transformada, com base nas posições dos coeficientes de transformada significativos dentro das sub-varreduras anteriores.
  9. 9. Aparelho de acordo com qualquer uma das reivindicações 1 a 8, em que o descodificador (250) está configurado para, ao extrair o mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada, extrair sequencialmente os elementos de sintaxe do primeiro tipo a partir do fluxo de dados por descodificação por entropia adaptativa ao contexto, os elementos de sintaxe do primeiro tipo indicando, para as posições associadas dentro do bloco de coeficiente de transformada, se na respetiva posição está situado um coeficiente de transformada significativo ou não significativo; e o associador (250) está configurado para associar sequencialmente os elementos de sintaxe do primeiro tipo extraídos sequencialmente para as posições do bloco de coeficiente de transformada na ordem de varredura pré-determinada entre as posições do bloco de coeficiente de transformada, em que o descodificador é configurado para utilizar, ao descodificar por entropia adaptativa ao contexto os elementos de sintaxe do primeiro tipo, contextos que são selecionados individualmente para cada um dos elementos de sintaxe do primeiro tipo, dependendo de um número de posições nas quais, de acordo com os elementos de sintaxe do primeiro tipo previamente extraídos e associados, estão situados os coeficientes de transformada significativos, numa vizinhança da posição com a qual um elemento de sintaxe do primeiro tipo atual está associado.
  10. 10. Aparelho de acordo com a reivindicação 9, em que o descodificador (250) está ainda configurado para mapear o número de posições nas quais, de acordo com os elementos de sintaxe do primeiro tipo previamente extraídos e associados, estão situados os coeficientes de transformada significativos, na vizinhança da posição com a qual o respetivo elemento de sintaxe do primeiro tipo está associado, a um índice de contexto de um conjunto predeterminado de índices de contexto possíveis sob ponderação com um número de posições disponíveis na vizinhança da posição com a qual o respetivo elemento de sintaxe do primeiro tipo está associado.
  11. 11. Aparelho de acordo com qualquer uma das reivindicações 1 a 10, em que o bloco de coeficiente de transformada se refere ao conteúdo de um mapa de profundidade.
  12. 12. Aparelho para codificar um bloco de coeficiente de transformada configurado para codificar um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada e, em seguida, os valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada num fluxo de dados, em que, ao extrair os valores dos coeficientes de transformada significativos, sequencialmente codifica os valores por codificação por entropia adaptativa ao contexto, em que o aparelho está configurado para codificar os valores no fluxo de dados numa ordem de varredura de coeficiente predeterminada entre as posições do bloco de coeficiente de transformada, caraterizado por o bloco de coeficiente de transformada ser varrido em sub-blocos do bloco de coeficiente de transformada utilizando uma ordem de varredura de sub-bloco adicionalmente, fazendo a varredura das posições dos coeficientes de transformada dentro dos sub-blocos numa ordem de sub-varredura de posição, em que o aparelho está ainda configurado para utilizar, ao codificar sequencialmente por entropia adaptativa ao contexto os valores dos valores de coeficiente de transformada significativos, um conjunto selecionado de um número de contextos de uma pluralidade de conjuntos de um número de contextos, em que o aparelho está configurado de tal modo que a seleção do conjunto selecionado a ser realizada para cada sub-bloco, depende dos valores dos coeficientes de transformada dentro de um sub-bloco do bloco de coeficiente de transformada, já tendo sido percorrido na ordem de varredura de sub-bloco, ou de tal modo que a seleção do conjunto selecionado a ser realizada para cada sub-bloco, depende dos valores dos coeficientes de transformada de um sub-bloco co-localizado num bloco de coeficiente de transformada previamente codificado de tamanho idêntico.
  13. 13. Aparelho de acordo com a reivindicação 12, em que o bloco de coeficiente de transformada se refere ao conteúdo de um mapa de profundidade.
  14. 14. Método para descodificar um bloco de coeficiente de transformada, compreendendo: extrair um mapa de significância que indica as posições de coeficientes de transformada significativos dentro do bloco de coeficiente de transformada e, em seguida, os valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada a partir de um fluxo de dados, em que, ao extrair os valores dos coeficientes de transformada significativos, são extraídos sequencialmente os valores por descodificação por entropia adaptativa ao contexto; e associar sequencialmente os valores extraídos sequencialmente com as posições dos coeficientes de transformada significativos numa ordem de varredura de coeficiente predeterminada entre as posições do bloco de coeficiente de transformada, caracterizado por o bloco de coeficiente de transformada ser varrido em sub-blocos do bloco de coeficiente de transformada utilizando uma ordem de varredura de sub-bloco adicionalmente, fazendo a varredura das posições dos coeficientes de transformada dentro dos sub-blocos numa posição de ordem de sub-varredura (324), em que, ao descodificar sequencialmente por entropia adaptativa ao contexto os valores dos valores de coeficiente de transformada siqnificativos, é utilizado um conjunto selecionado de um número de contextos a partir de uma pluralidade de conjuntos de um número de contextos, a seleção do conjunto selecionado sendo realizada para cada sub-bloco, dependendo dos valores dos coeficientes de transformada dentro de um sub-bloco do bloco de coeficiente de transformada, já tendo sido percorrido na ordem de varredura de sub-bloco, ou a seleção do conjunto selecionado sendo realizada para cada sub-bloco, dependendo dos valores dos coeficientes de transformada de um sub-bloco co-localizado num bloco de coeficiente de transformada previamente descodificado de tamanho idêntico.
  15. 15. Método para codificar um bloco de coeficiente de transformada, compreendendo codificar um mapa de siqnificância que indica as posições dos coeficientes de transformada siqnificativos dentro do bloco de coeficiente de transformada e, em sequida, os valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada num fluxo de dados, em que, ao codificar os valores dos coeficientes de transformada significativos, sequencialmente codifica os valores por codificação por entropia adaptativa ao contexto, em que a codificação dos valores no fluxo de dados é realizada numa ordem de varredura de coeficiente predeterminada entre as posições do bloco de coeficiente de transformada, caraterizado por o bloco de coeficiente de transformada ser varrido em sub-blocos do bloco de coeficiente de transformada utilizando uma ordem de varredura de sub-bloco adicionalmente, fazendo a varredura das posições dos coeficientes de transformada dentro dos sub-blocos numa ordem de sub-varredura de posição, em que ao codificar sequencialmente por entropia adaptativa ao contexto os valores dos valores de coeficiente de transformada significativos, é utilizado um conjunto selecionado de um número de contextos de uma pluralidade de conjuntos de um número de contextos, a seleção do conjunto selecionado a ser realizada para cada sub-bloco dependendo dos valores dos coeficientes de transformada dentro de um sub-bloco do bloco de coeficiente de transformada, já tendo sido percorrido na ordem de varredura de sub-bloco, ou a seleção do conjunto selecionado a ser realizada para cada sub-bloco, dependendo dos valores dos coeficientes de transformada de um sub-bloco co-localizado num bloco de coeficiente de transformada previamente codificado de tamanho idêntico.
  16. 16. Fluxo de dados compreendendo uma codificação de um mapa de significância que indica as posições dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada seguidas dos valores dos coeficientes de transformada significativos dentro do bloco de coeficiente de transformada, em que os valores dos coeficientes de transformada significativos são sequencialmente codificados no fluxo de dados por codificação por entropia adaptativa ao contexto numa ordem de varredura de coeficiente predeterminada entre as posições do bloco de coeficiente de transformada, caraterizado por o bloco de coeficiente de transformada ser varrido em sub-blocos do bloco de coeficiente de transformada utilizando uma ordem de varredura de sub-bloco adicionalmente, fazendo a varredura das posições dos coeficientes de transformada dentro dos sub-blocos numa ordem de sub-varredura de posição, em que os valores dos valores de coeficiente de transformada significativos são codificados sequencialmente por entropia adaptativa ao contexto no fluxo de dados, utilizando um conjunto selecionado de um número de contextos de uma pluralidade de conjuntos de um número de contextos, a seleção do conjunto selecionado a ser realizada para cada sub-bloco dependendo dos valores dos coeficientes de transformada dentro de um sub-bloco do bloco de coeficiente de transformada, já tendo sido percorrido na ordem de varredura de sub-bloco, ou a seleção do conjunto selecionado a ser realizada para cada sub-bloco dependendo dos valores dos coeficientes de transformada de um sub-bloco co-localizado num bloco de coeficiente de transformada previamente codificado de tamanho idêntico.
  17. 17. Fluxo de dados de acordo com a reivindicação 16, em que o bloco de coeficiente de transformada se refere ao conteúdo de um mapa de profundidade.
  18. 18. Meio de armazenamento digital legível por computador tendo nele armazenado um programa de computador que tem um código de programa para realizar, quando executado num computador, um método de acordo com a reivindicação 14 ou 15.
PT131887960T 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficiente de transformada PT2693752T (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10159766 2010-04-13
EP2010054822 2010-04-13

Publications (1)

Publication Number Publication Date
PT2693752T true PT2693752T (pt) 2017-03-31

Family

ID=43989787

Family Applications (8)

Application Number Title Priority Date Filing Date
PT117137919T PT2559244T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT131887960T PT2693752T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficiente de transformada
PT17177435T PT3244612T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT181852401T PT3410716T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT182110981T PT3471416T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT182110940T PT3487179T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT181959545T PT3435674T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT201506227T PT3691267T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PT117137919T PT2559244T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada

Family Applications After (6)

Application Number Title Priority Date Filing Date
PT17177435T PT3244612T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT181852401T PT3410716T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT182110981T PT3471416T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT182110940T PT3487179T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT181959545T PT3435674T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada
PT201506227T PT3691267T (pt) 2010-04-13 2011-04-11 Codificação de mapas de significância e blocos de coeficientes de transformada

Country Status (21)

Country Link
US (25) US9894368B2 (pt)
EP (9) EP3435674B1 (pt)
JP (11) JP2013524707A (pt)
KR (14) KR20230110371A (pt)
CN (25) CN113556556A (pt)
BR (3) BR122020004415B1 (pt)
CY (1) CY1119639T1 (pt)
DK (8) DK3691267T3 (pt)
ES (8) ES2825200T3 (pt)
FI (1) FI3435674T3 (pt)
HR (2) HRP20220743T1 (pt)
HU (8) HUE032567T2 (pt)
LT (3) LT3691267T (pt)
NO (1) NO2559244T3 (pt)
PL (8) PL2693752T3 (pt)
PT (8) PT2559244T (pt)
RS (3) RS56512B1 (pt)
SI (3) SI2559244T1 (pt)
TR (1) TR201815695T4 (pt)
TW (10) TWI545525B (pt)
WO (1) WO2011128303A2 (pt)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113556556A (zh) 2010-04-13 2021-10-26 Ge视频压缩有限责任公司 显著性图和变换系数块的编码
JP5688136B2 (ja) * 2010-04-23 2015-03-25 エム アンド ケー ホールディングス インコーポレイテッド 映像を符号化する装置及び方法
KR102574591B1 (ko) * 2010-05-12 2023-09-06 인터디지털 매디슨 페턴트 홀딩스 에스에이에스 통합된 유효성 맵 코딩을 위한 방법 및 장치
US9172968B2 (en) 2010-07-09 2015-10-27 Qualcomm Incorporated Video coding using directional transforms
KR101373814B1 (ko) 2010-07-31 2014-03-18 엠앤케이홀딩스 주식회사 예측 블록 생성 장치
US9497472B2 (en) * 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation in video coding
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US9609353B2 (en) 2010-12-14 2017-03-28 M&K Holdings Inc. Apparatus for encoding a moving picture
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US20120230418A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
CN102685503B (zh) * 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
US9756360B2 (en) 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
EP2735154A1 (en) * 2011-07-22 2014-05-28 Motorola Mobility LLC Device and methods for scanning rectangular-shaped transforms in video coding
AU2011236109B2 (en) 2011-10-18 2015-02-19 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
EP2587802B1 (en) * 2011-10-24 2014-07-16 BlackBerry Limited Significance map encoding and decoding using partition selection
US8891630B2 (en) 2011-10-24 2014-11-18 Blackberry Limited Significance map encoding and decoding using partition set based context assignment
CN107465934B (zh) 2011-10-31 2020-06-26 三星电子株式会社 确定上下文模型的方法
US8964849B2 (en) 2011-11-01 2015-02-24 Blackberry Limited Multi-level significance maps for encoding and decoding
WO2013063800A1 (en) * 2011-11-04 2013-05-10 Mediatek Inc. Methods and apparatuses of solving mdcs parsing issue
US9525876B2 (en) * 2011-11-04 2016-12-20 Sharp Kabushiki Kaisha Arithmetic decoding device, image decoding device, arithmetic coding device, image coding device, and arithmetic decoding method
US10390046B2 (en) 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
KR20130050404A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
KR20130050405A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 시간 후보자 결정방법
JP6120490B2 (ja) 2011-11-07 2017-04-26 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US9154792B2 (en) * 2011-11-08 2015-10-06 Qualcomm Incorporated Progressive coding of position of last significant coefficient
CA2773990C (en) 2011-11-19 2015-06-30 Research In Motion Limited Multi-level significance map scanning
WO2013077713A1 (ko) * 2011-11-27 2013-05-30 엘지전자 주식회사 변환 계수 재정렬 방법 및 이를 이용하는 장치
WO2013096671A1 (en) * 2011-12-20 2013-06-27 General Instrument Corporation Method and apparatus for efficient transform unit encoding
SG192171A1 (en) * 2011-12-21 2013-08-30 Panasonic Corp Image coding method, image decoding method, image coding apparatus and image decoding apparatus
CN108600761B (zh) * 2012-01-03 2020-05-08 寰发股份有限公司 重要性群组旗标编码方法与装置
US9253481B2 (en) * 2012-01-13 2016-02-02 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
US9191670B2 (en) * 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
US20140355690A1 (en) * 2012-01-20 2014-12-04 Samsung Electronics Co., Ltd. Method and apparatus for entropy-encoding capable of parallel processing, and method and apparatus for entropy-decoding capable of parallel processing
KR102293126B1 (ko) 2012-01-20 2021-08-25 지이 비디오 컴프레션, 엘엘씨 변환 계수 코딩
US9008189B2 (en) 2012-01-20 2015-04-14 Blackberry Limited Methods and devices for context modeling to enable modular processing
EP2618578B1 (en) * 2012-01-20 2015-07-15 BlackBerry Limited Methods and devices for context set selection
EP2618573B1 (en) * 2012-01-20 2017-12-13 BlackBerry Limited Methods and devices for context modeling to enable modular processing
US9008184B2 (en) 2012-01-20 2015-04-14 Blackberry Limited Multiple sign bit hiding within a transform unit
US9584812B2 (en) 2012-01-20 2017-02-28 Blackberry Limited Methods and devices for context set selection
US9866829B2 (en) 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US9363510B2 (en) * 2012-03-02 2016-06-07 Qualcomm Incorporated Scan-based sliding window in context derivation for transform coefficient coding
US9491463B2 (en) 2012-04-14 2016-11-08 Qualcomm Incorporated Group flag in transform coefficient coding for video coding
US9124872B2 (en) 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
US9350998B2 (en) * 2012-06-29 2016-05-24 Qualcomm Incorporated Coding of significance flags
US9854235B2 (en) 2012-08-31 2017-12-26 Blackberry Limited Methods and devices for entropy coding in scalable video compression
US9538175B2 (en) * 2012-09-26 2017-01-03 Qualcomm Incorporated Context derivation for context-adaptive, multi-level significance coding
JPWO2014049982A1 (ja) * 2012-09-28 2016-08-22 三菱電機株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
KR102257542B1 (ko) 2012-10-01 2021-05-31 지이 비디오 컴프레션, 엘엘씨 향상 레이어에서 변환 계수 블록들의 서브블록-기반 코딩을 이용한 스케일러블 비디오 코딩
CN104272735B (zh) * 2013-01-16 2018-04-13 黑莓有限公司 针对视频的上下文自适应二进制熵编码的变换系数编码
GB2513110A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
WO2014167730A1 (ja) * 2013-04-12 2014-10-16 富士通株式会社 圧縮装置、圧縮方法、および圧縮プログラム
ITTO20130629A1 (it) * 2013-07-24 2015-01-25 Sisvel Technology Srl Method for encoding an image descriptor based on a gradient histogram and relative image processing apparatus
US9445132B2 (en) 2013-09-09 2016-09-13 Qualcomm Incorporated Two level last significant coefficient (LSC) position coding
EP3058726A1 (en) * 2013-10-16 2016-08-24 Huawei Technologies Co., Ltd. A method for determining a corner video part of a partition of a video coding block
KR102257379B1 (ko) * 2014-07-22 2021-06-01 삼성전자주식회사 비디오 인코딩 회로 및 그것을 이용하는 비디오 인코딩 방법
TWI561060B (en) * 2015-01-15 2016-12-01 Mstar Semiconductor Inc Signal processing apparatus and signal processing method including quantization or inverse-quantization process
US9781424B2 (en) * 2015-01-19 2017-10-03 Google Inc. Efficient context handling in arithmetic coding
EP3295206B1 (en) * 2015-05-12 2020-07-29 HERE Global B.V. Compressing and decompressing data about radio signals
EP3293975A4 (en) * 2015-09-08 2018-10-10 Samsung Electronics Co., Ltd. Device and method for entropy encoding and decoding
RU2706228C1 (ru) * 2016-02-12 2019-11-15 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство выбора порядка сканирования
EP3412028B1 (en) * 2016-02-12 2024-04-03 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
GB2557335A (en) * 2016-12-07 2018-06-20 Sony Corp Image data encoding and decoding
KR20180089290A (ko) 2017-01-31 2018-08-08 세종대학교산학협력단 영상의 부호화/복호화 방법 및 장치
WO2018143670A1 (ko) * 2017-01-31 2018-08-09 세종대학교 산학협력단 영상의 부호화/복호화 방법 및 장치
US11405645B2 (en) * 2017-02-28 2022-08-02 Google Llc Transform kernel selection and entropy coding
JP2018182444A (ja) * 2017-04-07 2018-11-15 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
KR102257829B1 (ko) 2017-04-13 2021-05-28 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
CN115297324A (zh) * 2017-04-13 2022-11-04 Lg 电子株式会社 熵编码和解码视频信号的方法和设备
US11477492B2 (en) * 2017-08-04 2022-10-18 Google Inc. Adaptation for entropy coding of blocks of image data
WO2019050299A1 (ko) * 2017-09-06 2019-03-14 가온미디어 주식회사 변화계수 서브그룹 스캐닝 방법에 따른 부/복호화 방법 및 장치
US10523968B2 (en) * 2017-09-18 2019-12-31 Google Llc Coding of last significant coefficient flags
EP3490253A1 (en) * 2017-11-23 2019-05-29 Thomson Licensing Encoding and decoding methods and corresponding devices
CN109874012B (zh) * 2017-12-04 2020-09-11 北京金山云网络技术有限公司 一种视频编码方法、编码器、电子设备及介质
EP3503557A1 (en) * 2017-12-22 2019-06-26 Thomson Licensing Method and apparatus for video encoding and decoding based on context switching
WO2019190204A1 (ko) 2018-03-27 2019-10-03 주식회사 케이티 비디오 신호 처리 방법 및 장치
EP3562156A1 (en) * 2018-04-27 2019-10-30 InterDigital VC Holdings, Inc. Method and apparatus for adaptive context modeling in video encoding and decoding
CN110650343B (zh) * 2018-06-27 2024-06-07 中兴通讯股份有限公司 图像的编码、解码方法及装置、电子设备及系统
US11019346B2 (en) * 2018-07-02 2021-05-25 Qualcomm Incorporated Coefficient coding with grouped bypass remaining levels for dependent quantization
KR102668688B1 (ko) 2018-07-23 2024-05-24 삼성디스플레이 주식회사 유기 발광 소자
US11006150B2 (en) 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
KR102661759B1 (ko) * 2018-09-24 2024-04-30 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 종속 스칼라 양자화를 사용하거나 이와 조합하는 데에 적합한 변환 계수의 효율적인 코딩
US11470319B2 (en) * 2018-10-05 2022-10-11 Lg Electronics Inc. Method and device for coding transform coefficient
US11343539B2 (en) * 2018-10-08 2022-05-24 Hfi Innovation Inc. Method and apparatus of last significant coefficient coding in image and video coding
WO2020101321A1 (ko) 2018-11-12 2020-05-22 엘지전자 주식회사 고주파 제로잉을 기반으로 변환 계수를 코딩하는 방법 및 그 장치
KR20210107118A (ko) * 2019-01-02 2021-08-31 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 통합된 변환 타입 시그널링 및 변환 타입 종속 변환 계수 레벨 코딩
WO2020149594A1 (ko) * 2019-01-15 2020-07-23 엘지전자 주식회사 영상 코딩 시스템에서 고주파 제로잉을 기반으로 레지듀얼 정보를 코딩하는 영상 디코딩 방법 및 그 장치
US20220086490A1 (en) * 2019-02-12 2022-03-17 Lg Electronics Inc. Method and apparatus for processing video signal
KR102661468B1 (ko) 2019-02-15 2024-04-30 삼성디스플레이 주식회사 유기 발광 소자 및 이를 포함한 전자 장치
US10986334B2 (en) * 2019-03-09 2021-04-20 Tencent America LLC Method and apparatus for video coding
US11949870B2 (en) * 2019-06-21 2024-04-02 Qualcomm Incorporated Context modeling for low-frequency non-separable transformation signaling for video coding
KR102211000B1 (ko) * 2019-06-21 2021-02-02 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
KR20210059153A (ko) 2019-11-14 2021-05-25 삼성디스플레이 주식회사 유기 발광 소자 및 이를 포함한 장치
US11336893B2 (en) 2020-01-07 2022-05-17 Qualcomm Incorporated Context derivation and entropy coding initialization parameters for coordinates of last position coding in video coding
KR20220143934A (ko) * 2020-02-25 2022-10-25 에이치에프아이 이노베이션 인크. 비디오 코딩에서 2차 변환 시그널링을 위한 방법들 및 장치들
KR20210136224A (ko) 2020-05-06 2021-11-17 삼성디스플레이 주식회사 발광 소자 및 이를 포함하는 전자 장치
US11425368B1 (en) * 2021-02-17 2022-08-23 Adobe Inc. Lossless image compression using block based prediction and optimized context adaptive entropy coding
CN113079377B (zh) * 2021-04-01 2022-09-30 中国科学技术大学 一种深度图像/视频压缩网络的训练方法

Family Cites Families (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563875B2 (en) * 1987-12-30 2003-05-13 Thomson Licensing S.A. Adaptive method of encoding and decoding a series of pictures by transformation, and devices for implementing this method
US5021891A (en) * 1990-02-27 1991-06-04 Qualcomm, Inc. Adaptive block size image compression method and system
NL9100234A (nl) 1991-02-11 1992-09-01 Philips Nv Codeerschakeling voor transformatiecodering van een beeldsignaal en decodeerschakeling voor het decoderen daarvan.
KR960006762B1 (ko) * 1992-02-29 1996-05-23 삼성전자주식회사 화상부호화를 위한 효율적인 2차원 데이타의 주사선택회로
CA2118880A1 (en) * 1994-03-11 1995-09-12 Kannan Ramchandran Jpeg/mpeg decoder-compatible optimized thresholding for image and video signal compression
US6873734B1 (en) 1994-09-21 2005-03-29 Ricoh Company Ltd Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
CN100539695C (zh) * 1996-05-28 2009-09-09 松下电器产业株式会社 图像预测编码/解码装置和方法以及记录媒体
EP0817494A3 (en) * 1996-06-28 1998-07-22 Oki Electric Industry Co., Ltd. Image coding method and apparatus
US5793314A (en) * 1996-07-03 1998-08-11 Motorola, Inc. Method and apparatus for bound-based adaptive entropy encoding/decoding
AU714554B2 (en) * 1996-07-17 2000-01-06 Sony Corporation Image coding and decoding using mapping coefficients corresponding to class information of pixel blocks
AUPO472897A0 (en) 1997-01-22 1997-02-20 Canon Information Systems Research Australia Pty Ltd A method for digital image compression
US6002812A (en) * 1997-07-10 1999-12-14 Samsung Electronics Co., Ltd. Interpolation method for binary image
SE512291C2 (sv) 1997-09-23 2000-02-28 Ericsson Telefon Ab L M Inbäddad DCT-baserad stillbildskodningsalgoritm
AUPO951497A0 (en) * 1997-09-29 1997-10-23 Canon Information Systems Research Australia Pty Ltd A method for data compression
TW469740B (en) * 1998-08-13 2001-12-21 Equator Technologies Inc Circuit and method for implicitly transposing a matrix of values during the processing of an image
US6611620B1 (en) * 1998-08-28 2003-08-26 Matsushita Electric Industrial Co. Ltd. Reversible coding method, reversible coding apparatus, and memory medium used therein
EP1135926B1 (en) * 1998-12-04 2007-05-02 General Instrument Corporation Improvement of fine granularity scalability using bit plane coding of transform coefficients
US6680974B1 (en) * 1999-12-02 2004-01-20 Lucent Technologies Inc. Methods and apparatus for context selection of block transform coefficients
US6658159B1 (en) * 2000-03-17 2003-12-02 Hewlett-Packard Development Company, L.P. Block entropy coding in embedded block coding with optimized truncation image compression
AUPQ982400A0 (en) * 2000-09-01 2000-09-28 Canon Kabushiki Kaisha Entropy encoding and decoding
JP4612782B2 (ja) * 2000-09-27 2011-01-12 キヤノン株式会社 画像処理装置、及びその方法、並びにプログラム、記憶媒体
US6757429B2 (en) * 2001-02-21 2004-06-29 Boly Media Communications Inc. Method of compressing digital images
US20020118885A1 (en) * 2001-02-27 2002-08-29 Bernard Smeets Font compression and retrieval
US6856701B2 (en) * 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
DE10218541A1 (de) * 2001-09-14 2003-04-24 Siemens Ag Verfahren zur Videocodierung und Computerprogrammprodukt
CN100454339C (zh) * 2001-09-14 2009-01-21 诺基亚有限公司 基于上下文的自适应二进制算术编码的方法和系统
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
KR100468844B1 (ko) * 2002-01-07 2005-01-29 삼성전자주식회사 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법
ES2219589T3 (es) * 2002-02-05 2004-12-01 Siemens Aktiengesellschaft Compresion de datos.
US6909808B2 (en) 2002-03-08 2005-06-21 Anzus, Inc. Image compression to enhance optical correlation
US7295610B2 (en) * 2002-03-27 2007-11-13 Scientific-Atlanta, Inc. Hybrid rate control in a digital stream transcoder
JP4090862B2 (ja) 2002-04-26 2008-05-28 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
KR100627597B1 (ko) * 2002-04-26 2006-09-25 가부시키가이샤 엔티티 도코모 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 화상 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 화상 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
DE50301505D1 (de) 2002-04-30 2005-12-01 Siemens Ag Verfahren zur amplitudenbegrenzung eines trägerfrequenten ausgangssignals
EP1487113B1 (de) 2002-05-02 2006-10-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Kodierung und Dekodierung von Transformationskoeffizienten in Bild- oder Videokodierern
FR2840093B1 (fr) * 2002-05-27 2006-02-10 Real Eyes 3D Procede de numerisation par camera avec correction de la deformation et amelioration de la resolution
EP1734511B1 (en) * 2002-09-04 2009-11-18 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
WO2004038921A2 (en) * 2002-10-23 2004-05-06 Divxnetworks, Inc. Method and system for supercompression of compressed digital video
US20040151394A1 (en) * 2003-01-31 2004-08-05 Mikael Soderberg Symmetrical, highly deterministic, low complexity, temporal transform video codec and vehicle distribution system incorporating same
US6894628B2 (en) 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
KR100683169B1 (ko) 2003-08-29 2007-02-15 주식회사 엑스씨이 휴대폰 벨소리 제어 시스템 및 그 방법
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
JP2005117196A (ja) 2003-10-03 2005-04-28 Matsushita Electric Ind Co Ltd 映像符号化方法
JP4063205B2 (ja) * 2003-11-20 2008-03-19 セイコーエプソン株式会社 画像データ圧縮装置及びエンコーダ
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
KR100896684B1 (ko) 2004-01-27 2009-05-14 삼성전자주식회사 수신 성능이 향상된 디지털 방송 송수신 시스템 및 그의신호처리방법
US20050185711A1 (en) 2004-02-20 2005-08-25 Hanspeter Pfister 3D television system and method
US20050193485A1 (en) * 2004-03-02 2005-09-08 Wolfe Michael L. Machine for anticipatory sensing and intervention to avoid swimmer entrapment
WO2005094109A1 (en) 2004-03-18 2005-10-06 Nokia Corporation Position-based context awareness for mobile terminal device
US20050206741A1 (en) * 2004-03-19 2005-09-22 Raber Gregory W Law enforcement vehicle surveillance system
US7519229B2 (en) 2004-03-30 2009-04-14 Apple, Inc. Video coding system providing separate coding chains for dynamically selected small-size or full-size playback
US7292257B2 (en) * 2004-06-28 2007-11-06 Microsoft Corporation Interactive viewpoint video system and process
US20060008009A1 (en) * 2004-07-09 2006-01-12 Nokia Corporation Method and system for entropy coding for scalable video codec
CN1860796B (zh) * 2004-07-12 2010-06-16 索尼株式会社 编码方法、编码装置、解码方法、及解码装置
US7505043B2 (en) 2004-08-30 2009-03-17 Qualcomm Incorporated Cache efficient rasterization of graphics data
KR100647294B1 (ko) 2004-11-09 2006-11-23 삼성전자주식회사 화상 데이터 부호화 및 복호화 방법 및 장치
US8311119B2 (en) * 2004-12-31 2012-11-13 Microsoft Corporation Adaptive coefficient scan order
US20060153294A1 (en) * 2005-01-12 2006-07-13 Nokia Corporation Inter-layer coefficient coding for scalable video coding
KR100636229B1 (ko) * 2005-01-14 2006-10-19 학교법인 성균관대학 신축형 부호화를 위한 적응적 엔트로피 부호화 및 복호화방법과 그 장치
WO2006075901A1 (en) * 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
CN100345449C (zh) * 2005-03-18 2007-10-24 清华大学 图像/视频编码中变换系数的熵编码方法
KR100703776B1 (ko) 2005-04-19 2007-04-06 삼성전자주식회사 향상된 코딩 효율을 갖는 컨텍스트 기반 적응적 산술 코딩및 디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오코딩 및 디코딩 방법과 이를 위한 장치
US7620252B2 (en) * 2005-04-22 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for compressing an image
US20090028239A1 (en) 2005-05-03 2009-01-29 Bernhard Schuur Moving picture encoding method, moving picture decoding method and apparatuses using the methods
EP1768415A1 (en) * 2005-09-27 2007-03-28 Matsushita Electric Industrial Co., Ltd. Adaptive scan order of DCT coefficients and its signaling
WO2006123913A1 (en) * 2005-05-19 2006-11-23 Lg Electronics Inc. Method for coding/decoding video data
KR20060119736A (ko) 2005-05-19 2006-11-24 엘지전자 주식회사 영상 신호의 인코딩 방법
CN1719903A (zh) * 2005-06-24 2006-01-11 清华大学 用于图象算术编码中的一种二值化和概率模型选择方法
US20090123066A1 (en) * 2005-07-22 2009-05-14 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, image decoding program, computer readable recording medium having image encoding program recorded therein,
JP4642081B2 (ja) 2005-09-21 2011-03-02 三菱電機株式会社 電動機制御装置の過温検知方式
WO2007035056A1 (en) * 2005-09-26 2007-03-29 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding and entropy decoding fine-granularity scalability layer video data
CN101310536B (zh) * 2005-09-27 2010-06-02 高通股份有限公司 启用对h.264和其它变换编码信息的高效部分解码的视频编码方法
KR100873636B1 (ko) * 2005-11-14 2008-12-12 삼성전자주식회사 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치
CN100488254C (zh) * 2005-11-30 2009-05-13 联合信源数字音视频技术(北京)有限公司 一种基于上下文的熵编码方法及解码方法
US8023569B2 (en) 2005-12-15 2011-09-20 Sharp Laboratories Of America, Inc. Methods and systems for block-based residual upsampling
HUE044060T2 (hu) 2006-01-09 2019-09-30 Musmann Hans Georg A predikciós hiba adaptív kódolása hibrid videó kódolásban
CN101390398A (zh) * 2006-01-09 2009-03-18 诺基亚公司 用于精细粒度可伸缩视频编码中的熵编码的方法和装置
BRPI0706352B1 (pt) * 2006-01-09 2019-07-30 Dolby International Ab Método e aparelho para prover modo de atualização de resolução reduzida para codificação de vídeo de múltiplas visualizações
US7983343B2 (en) * 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video
WO2007079782A1 (en) * 2006-01-13 2007-07-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Quality scalable picture coding with particular transform coefficient scan path
JP4848785B2 (ja) 2006-02-07 2011-12-28 株式会社明電舎 インバータ装置の過負荷保護装置
US7488921B2 (en) 2006-02-27 2009-02-10 Honeywell International Inc. Adaptive startup control method for electric drives
JP5017555B2 (ja) 2006-04-10 2012-09-05 株式会社メガチップス 画像符号化装置及び画像復号化装置
TWI323133B (en) 2006-05-08 2010-04-01 Ind Tech Res Inst Method and system for data and video coding
CN101106721A (zh) * 2006-07-10 2008-01-16 华为技术有限公司 一种编解码装置及相关编码器
US8275045B2 (en) * 2006-07-12 2012-09-25 Qualcomm Incorporated Video compression using adaptive variable length codes
WO2008007929A1 (en) * 2006-07-14 2008-01-17 Samsung Electronics Co., Ltd Method and apparatus for encoding and decoding video signal of fgs layer by reordering transform coefficients
US7903894B2 (en) * 2006-10-05 2011-03-08 Microsoft Corporation Color image coding using inter-color correlation
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
US8019018B2 (en) * 2006-10-12 2011-09-13 Powerwave Cognition, Inc. Determining a mode to transmit data
US8090194B2 (en) 2006-11-21 2012-01-03 Mantis Vision Ltd. 3D geometric modeling and motion capture using both single and dual imaging
JP2008141382A (ja) * 2006-11-30 2008-06-19 Sony Corp 符号化装置および方法、並びにプログラム
DE102006061647B3 (de) * 2006-12-27 2008-08-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Kodieren eines Transformationskoeffizientenblockes
EP2105025B1 (en) * 2007-01-11 2021-04-07 InterDigital VC Holdings, Inc. Methods and apparatus for using syntax for the coded_block_flag syntax element and the coded_block_pattern syntax element for the cavlc 4:4:4 intra, high 4:4:4 intra, and high 4:4:4 predictive profiles in mpeg-4 avc high level coding
BRPI0720806B1 (pt) * 2007-01-18 2023-03-28 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Corrente de dados de vídeo de qualidade escalonável
CN100508610C (zh) * 2007-02-02 2009-07-01 清华大学 H.264/avc视频编码中速率和失真的快速估计方法
DE202007002071U1 (de) 2007-02-13 2007-06-14 Trw Automotive Electronics & Components Gmbh & Co. Kg Befestigungsvorrichtung
US8184710B2 (en) * 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
KR101356733B1 (ko) * 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
RU2420023C1 (ru) 2007-03-13 2011-05-27 Нокиа Корпорейшн Система и способ кодирования и декодирования видеосигналов
CA2895854A1 (en) * 2007-03-20 2008-10-23 Fujitsu Limited Video encoding and decoding apparatus and method using quantization in sub-blocks
KR20080086766A (ko) 2007-03-23 2008-09-26 삼성전자주식회사 픽셀 단위의 컨텍스트 모델을 이용한 영상의 부호화,복호화 방법 및 장치
JP5277180B2 (ja) * 2007-03-23 2013-08-28 トムソン ライセンシング 符号化ビットストリームの修正
US7772716B2 (en) 2007-03-27 2010-08-10 Newdoll Enterprises Llc Distributed maximum power point tracking system, structure and process
FR2915034B1 (fr) 2007-04-12 2009-06-05 Schneider Toshiba Inverter Methode et systeme de gestion de la temperature dans un variateur de vitesse
WO2008128380A1 (en) * 2007-04-20 2008-10-30 Thomson Licensing Method and apparatus for selecting a scan path for the elements of a block in spatial domain picture encoding and decoding
US8031954B2 (en) * 2007-04-26 2011-10-04 Canon Kabushiki Kaisha Image encoding apparatus and control method thereof using prediction encoding and pixel classification
US7813567B2 (en) * 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
US7885473B2 (en) * 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
CN101039430B (zh) * 2007-05-08 2011-01-12 清华大学 一种视频编码中对残差矩阵的快速扫描方法
US8086025B2 (en) 2007-05-10 2011-12-27 Monte Jerome Ramstad Universal stereoscopic file format
EP2177033A2 (en) * 2007-06-12 2010-04-21 Nokia Corporation Joint coding of multiple transform blocks with reduced number of coefficients
US8488668B2 (en) * 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
US8571104B2 (en) 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
WO2009001793A1 (ja) 2007-06-26 2008-12-31 Kabushiki Kaisha Toshiba 画像符号化と画像復号化の方法及び装置
US7755313B2 (en) 2007-09-12 2010-07-13 Gm Global Technology Operations, Inc. Power inverter module thermal management
US8204327B2 (en) * 2007-10-01 2012-06-19 Cisco Technology, Inc. Context adaptive hybrid variable length coding
US8265162B2 (en) * 2007-10-01 2012-09-11 Cisco Technology, Inc. Context adaptive position and amplitude coding of coefficients for video compression
US8483282B2 (en) * 2007-10-12 2013-07-09 Qualcomm, Incorporated Entropy coding of interleaved sub-blocks of a video block
KR101394153B1 (ko) * 2007-12-11 2014-05-16 삼성전자주식회사 양자화 방법 및 장치, 역양자화 방법 및 장치
JP2011508497A (ja) 2007-12-21 2011-03-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 画像データの効率的な伝送の方法及び装置
CN101217615B (zh) * 2007-12-27 2011-04-06 北京中星微电子有限公司 一种压缩图像比特率控制的方法及装置
US9008171B2 (en) * 2008-01-08 2015-04-14 Qualcomm Incorporated Two pass quantization for CABAC coders
US8891615B2 (en) * 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
KR100950417B1 (ko) * 2008-01-16 2010-03-29 에스케이 텔레콤주식회사 방향성 필터링 기반 웨이블렛 변환에서 문맥 모델링 방법및 웨이블렛 코딩 장치와 이를 위한 기록 매체
KR20090097013A (ko) * 2008-03-10 2009-09-15 삼성전자주식회사 영상 부호화장치 및 영상 복호화장치
KR20090097689A (ko) 2008-03-12 2009-09-16 삼성전자주식회사 영상의 인트라 예측 부호화/복호화 방법 및 장치
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
US8902972B2 (en) * 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
JP4962400B2 (ja) * 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US8179974B2 (en) * 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8254470B2 (en) 2008-06-03 2012-08-28 Rovi Solutions Corporation Encoding and decoding of embedded data stream in analog video using copy protection pulses
KR20090129926A (ko) * 2008-06-13 2009-12-17 삼성전자주식회사 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
US7999403B2 (en) 2008-06-24 2011-08-16 General Electric Company System and method for locomotive engine cranking
EP2154894A1 (en) 2008-08-15 2010-02-17 Thomson Licensing Video coding with coding of the locations of significant coefficients in a block of coefficients
US8406307B2 (en) * 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
CN101355700B (zh) * 2008-09-09 2010-06-02 北京大学软件与微电子学院 一种并行类熵编码方法及其装置
JP5259828B2 (ja) * 2008-10-03 2013-08-07 クゥアルコム・インコーポレイテッド 4×4および8×8よりも大きい変換を使用するビデオ符号化
EP2182732A1 (en) 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
KR100936208B1 (ko) * 2008-12-09 2010-01-12 주식회사세오 무손실 문맥적응적이진산술부호화를 위한 h.264/avc 부호화기, 상기 부호화기의 문맥적응적이진산술부호화방법
US8611435B2 (en) 2008-12-22 2013-12-17 Qualcomm, Incorporated Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding
KR20100102386A (ko) 2009-03-11 2010-09-24 삼성전자주식회사 레지듀얼 값 분포에 적응적인 부호표 선택에 기초한 영상 부호화, 복호화 방법 및 장치
KR20120092095A (ko) * 2009-07-02 2012-08-20 톰슨 라이센싱 적응적 트리 선택을 사용한 이진 집합의 비디오 인코딩 및 디코딩을 위한 방법 및 장치
CN101646086B (zh) * 2009-08-21 2011-07-20 香港应用科技研究院有限公司 用于4×4块变换系数标示的前文参考模型化的方法及装置
US8411750B2 (en) * 2009-10-30 2013-04-02 Qualcomm Incorporated Global motion parameter estimation using block-based motion vectors
US8611414B2 (en) * 2010-02-17 2013-12-17 University-Industry Cooperation Group Of Kyung Hee University Video signal processing and encoding
CN113556556A (zh) * 2010-04-13 2021-10-26 Ge视频压缩有限责任公司 显著性图和变换系数块的编码
US20120230418A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US20130188698A1 (en) * 2012-01-19 2013-07-25 Qualcomm Incorporated Coefficient level coding
US10979732B2 (en) * 2016-10-04 2021-04-13 Qualcomm Incorporated Adaptive motion vector precision for video coding

Also Published As

Publication number Publication date
US10462474B2 (en) 2019-10-29
US11025926B2 (en) 2021-06-01
CN108777797A (zh) 2018-11-09
KR20200019777A (ko) 2020-02-24
US20190037221A1 (en) 2019-01-31
LT3435674T (lt) 2023-09-25
KR20220098295A (ko) 2022-07-11
TW202031051A (zh) 2020-08-16
JP2018201202A (ja) 2018-12-20
DK3471416T3 (da) 2020-10-19
US20190246121A1 (en) 2019-08-08
CN108777797B (zh) 2021-01-29
EP3471416A1 (en) 2019-04-17
TWI787604B (zh) 2022-12-21
TW201921941A (zh) 2019-06-01
CN113556562A (zh) 2021-10-26
ES2620301T3 (es) 2017-06-28
PL3410716T3 (pl) 2020-06-29
US20190268609A1 (en) 2019-08-29
ES2823549T3 (es) 2021-05-07
CN108777790A (zh) 2018-11-09
US11297336B2 (en) 2022-04-05
JP2015180071A (ja) 2015-10-08
HUE050955T2 (hu) 2021-01-28
US20160316212A1 (en) 2016-10-27
CN108471537B (zh) 2022-05-17
PT3691267T (pt) 2022-06-02
US11070822B2 (en) 2021-07-20
EP3691267A1 (en) 2020-08-05
DK3244612T3 (en) 2018-11-12
CN113556558A (zh) 2021-10-26
NO2559244T3 (pt) 2017-12-30
US9998741B2 (en) 2018-06-12
KR102023566B1 (ko) 2019-09-23
US10123025B2 (en) 2018-11-06
CN109151485A (zh) 2019-01-04
PL3487179T3 (pl) 2021-01-11
US20210211686A1 (en) 2021-07-08
FI3435674T3 (fi) 2023-09-07
HUE040296T2 (hu) 2019-02-28
KR101966211B1 (ko) 2019-08-13
BR112012026388A2 (pt) 2016-08-02
CN108777791B (zh) 2021-07-16
KR20180119711A (ko) 2018-11-02
KR101914176B1 (ko) 2018-11-02
PT3410716T (pt) 2020-04-21
EP2693752A1 (en) 2014-02-05
HUE037038T2 (hu) 2018-08-28
CN113556560A (zh) 2021-10-26
US10587884B2 (en) 2020-03-10
US20180295369A1 (en) 2018-10-11
US10021404B2 (en) 2018-07-10
TWI640190B (zh) 2018-11-01
EP3709646A1 (en) 2020-09-16
HUE032567T2 (en) 2017-09-28
CN102939755B (zh) 2018-08-10
TW201142759A (en) 2011-12-01
EP2559244A2 (en) 2013-02-20
EP2559244B1 (en) 2017-08-02
KR102079664B1 (ko) 2020-02-21
KR20140071466A (ko) 2014-06-11
CN105187829B (zh) 2018-10-26
KR20210054028A (ko) 2021-05-12
KR101739808B1 (ko) 2017-05-25
US20200344487A1 (en) 2020-10-29
LT3691267T (lt) 2022-05-10
PL2559244T3 (pl) 2018-01-31
TW201742457A (zh) 2017-12-01
KR102553952B1 (ko) 2023-07-11
PL2693752T3 (pl) 2017-06-30
TWI799747B (zh) 2023-04-21
KR20230110371A (ko) 2023-07-21
JP7078670B2 (ja) 2022-05-31
KR20170058462A (ko) 2017-05-26
EP3487179B1 (en) 2020-07-15
CN102939755A (zh) 2013-02-20
CN108881922B (zh) 2021-07-30
TW202130184A (zh) 2021-08-01
CN113556563A (zh) 2021-10-26
TW202031044A (zh) 2020-08-16
US20180255306A1 (en) 2018-09-06
JP2018201204A (ja) 2018-12-20
DK3487179T3 (da) 2020-10-19
ES2952881T3 (es) 2023-11-06
US11252419B2 (en) 2022-02-15
SI2559244T1 (en) 2018-01-31
EP3435674A1 (en) 2019-01-30
US10129549B2 (en) 2018-11-13
CY1119639T1 (el) 2018-04-04
KR20150009602A (ko) 2015-01-26
CN113556555A (zh) 2021-10-26
TWI810078B (zh) 2023-07-21
CN113556561A (zh) 2021-10-26
US11128875B2 (en) 2021-09-21
PT3244612T (pt) 2018-11-14
US20190230370A1 (en) 2019-07-25
CN105187829A (zh) 2015-12-23
CN113573075A (zh) 2021-10-29
CN109151485B (zh) 2022-10-11
US20200169740A1 (en) 2020-05-28
HUE051391T2 (hu) 2021-03-01
HUE049043T2 (hu) 2020-08-28
TWI711302B (zh) 2020-11-21
US20200014939A1 (en) 2020-01-09
US20160080742A1 (en) 2016-03-17
JP5911027B2 (ja) 2016-04-27
CN108881910A (zh) 2018-11-23
EP3471416B1 (en) 2020-07-15
CN108471538A (zh) 2018-08-31
US10306242B2 (en) 2019-05-28
US20160309188A1 (en) 2016-10-20
EP3487179A1 (en) 2019-05-22
PL3244612T3 (pl) 2019-01-31
KR20180095951A (ko) 2018-08-28
ES2912048T3 (es) 2022-05-24
KR101502495B1 (ko) 2015-03-13
DK3410716T3 (da) 2020-04-14
KR20160038063A (ko) 2016-04-06
DK3691267T3 (da) 2022-06-20
BR122020004415B1 (pt) 2021-09-08
CN114143553A (zh) 2022-03-04
TW202345597A (zh) 2023-11-16
ES2825200T3 (es) 2021-05-14
US9357217B2 (en) 2016-05-31
RS63325B1 (sr) 2022-07-29
TW201537954A (zh) 2015-10-01
KR101951413B1 (ko) 2019-02-25
DK2559244T3 (da) 2017-11-13
CN108777792A (zh) 2018-11-09
TWI830676B (zh) 2024-01-21
SI3435674T1 (sl) 2023-10-30
US10306243B2 (en) 2019-05-28
KR20190019221A (ko) 2019-02-26
KR102249230B1 (ko) 2021-05-10
EP3244612A1 (en) 2017-11-15
US11095906B2 (en) 2021-08-17
KR102417196B1 (ko) 2022-07-05
CN113556554A (zh) 2021-10-26
JP2017130941A (ja) 2017-07-27
KR20180095952A (ko) 2018-08-28
US20190098322A1 (en) 2019-03-28
KR101605163B1 (ko) 2016-03-22
PT3471416T (pt) 2020-10-19
ES2692195T3 (es) 2018-11-30
PL3691267T3 (pl) 2022-07-11
JP6753914B2 (ja) 2020-09-09
JP2018201203A (ja) 2018-12-20
JP2019054539A (ja) 2019-04-04
PL3471416T3 (pl) 2021-05-04
JP2014131286A (ja) 2014-07-10
CN108471534A (zh) 2018-08-31
CN108471538B (zh) 2022-05-17
US20180220136A1 (en) 2018-08-02
TW202308388A (zh) 2023-02-16
BR112012026388B1 (pt) 2021-05-04
US10750191B2 (en) 2020-08-18
EP3410716A1 (en) 2018-12-05
US10855999B2 (en) 2020-12-01
KR20130006678A (ko) 2013-01-17
PT3487179T (pt) 2020-10-19
EP3691267B1 (en) 2022-03-16
DK2693752T3 (en) 2017-04-03
US20200366908A1 (en) 2020-11-19
CN113556557A (zh) 2021-10-26
US20180084261A1 (en) 2018-03-22
CN108777792B (zh) 2020-12-04
SI3691267T1 (sl) 2022-06-30
WO2011128303A3 (en) 2012-02-02
CN108881922A (zh) 2018-11-23
EP3244612B1 (en) 2018-07-25
DK3435674T3 (da) 2023-08-21
KR102023565B1 (ko) 2019-09-23
RS56512B1 (sr) 2018-02-28
US20210144389A1 (en) 2021-05-13
TWI545525B (zh) 2016-08-11
EP2693752B1 (en) 2017-03-08
TWI781435B (zh) 2022-10-21
US9699467B2 (en) 2017-07-04
HUE063400T2 (hu) 2024-01-28
ES2784509T3 (es) 2020-09-28
JP6438986B2 (ja) 2018-12-19
US20210006804A1 (en) 2021-01-07
JP2013524707A (ja) 2013-06-17
TR201815695T4 (tr) 2018-11-21
CN108777793A (zh) 2018-11-09
JP2022110119A (ja) 2022-07-28
PT3435674T (pt) 2023-09-06
CN108777793B (zh) 2020-11-03
PL3435674T3 (pl) 2023-10-23
TWI590648B (zh) 2017-07-01
HRP20220743T1 (hr) 2022-08-19
TWI705700B (zh) 2020-09-21
US20130051459A1 (en) 2013-02-28
JP6097332B2 (ja) 2017-03-15
WO2011128303A2 (en) 2011-10-20
US20180220137A1 (en) 2018-08-02
CN108777790B (zh) 2021-02-09
HUE059150T2 (hu) 2022-10-28
CN108471534B (zh) 2021-01-01
PT2559244T (pt) 2017-11-10
US10477223B2 (en) 2019-11-12
CN108881910B (zh) 2021-01-26
KR20180095953A (ko) 2018-08-28
US10341668B2 (en) 2019-07-02
US11032556B2 (en) 2021-06-08
US9894368B2 (en) 2018-02-13
CN113556559A (zh) 2021-10-26
US20240031585A1 (en) 2024-01-25
EP3410716B1 (en) 2020-01-08
US20190098323A1 (en) 2019-03-28
CN108777791A (zh) 2018-11-09
JP6700341B2 (ja) 2020-05-27
US10148968B2 (en) 2018-12-04
JP2020145753A (ja) 2020-09-10
LT2559244T (lt) 2017-12-11
BR122020004414B1 (pt) 2021-09-08
RS64607B1 (sr) 2023-10-31
TW202126046A (zh) 2021-07-01
KR101607242B1 (ko) 2016-03-30
JP6700343B2 (ja) 2020-05-27
CN113556556A (zh) 2021-10-26
HRP20171669T1 (hr) 2017-12-29
US20200007874A1 (en) 2020-01-02
JP2020191684A (ja) 2020-11-26
CN108471537A (zh) 2018-08-31
EP3435674B1 (en) 2023-06-07
ES2645159T3 (es) 2017-12-04
US20180220135A1 (en) 2018-08-02
JP6700342B2 (ja) 2020-05-27

Similar Documents

Publication Publication Date Title
PT2693752T (pt) Codificação de mapas de significância e blocos de coeficiente de transformada