BR122019026459B1 - Método para decodificar pelo menos uma parte de uma imagem codificada compreendendo uma pluralidade de amostras - Google Patents

Método para decodificar pelo menos uma parte de uma imagem codificada compreendendo uma pluralidade de amostras Download PDF

Info

Publication number
BR122019026459B1
BR122019026459B1 BR122019026459-7A BR122019026459A BR122019026459B1 BR 122019026459 B1 BR122019026459 B1 BR 122019026459B1 BR 122019026459 A BR122019026459 A BR 122019026459A BR 122019026459 B1 BR122019026459 B1 BR 122019026459B1
Authority
BR
Brazil
Prior art keywords
sao
component
filtering
flag
value
Prior art date
Application number
BR122019026459-7A
Other languages
English (en)
Inventor
Guillaume Laroche
Christophe Gisquet
Edouard François
Patrice Onno
Original Assignee
Canon Kabushiki Kaisha
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Kabushiki Kaisha filed Critical Canon Kabushiki Kaisha
Publication of BR122019026459B1 publication Critical patent/BR122019026459B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/172Methods 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 picture, frame or field
    • 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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Systems (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Image Processing (AREA)

Abstract

A presente invenção fornece um método e um dispositivo para codificar e decodificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreende pelo menos dois componentes, e a imagem codificada compreende pelo menos um parâmetro de filtragem. A filtragem compreende usar pelo menos um parâmetro de filtragem como um parâmetro de filtragem comum para filtrar tanto o primeiro componente quanto o segundo componente de uma amostra construída.

Description

“Dividido do BR 11 2014 010885 4, depositado em 07/11/2012”. Campo da Invenção
[0001] A presente invenção refere-se a um método e um dispositivo para otimizar a codificação e/ou decodificação de deslocamentos de compensação para um conjunto de amostras reconstruídas de uma imagem para melhorar a eficiência de codificação de um codec de vídeo e/ou complexidade de decodificação. A invenção refere-se ainda a um método e dispositivo para codificar ou decodificar uma sequência de imagens digitais.
Fundamentos da Invenção
[0002] A invenção pode ser aplicada no campo de processamento de sinal digital, e, em particular, no campo de compressão de vídeo usando compensação de movimento para reduzir redundâncias espaciais e temporais em fluxos de vídeo.
[0003] Muitos formatos de compressão de vídeo, tais como, por exemplo, H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, usam transformada discreta do cosseno (DCT) baseada em bloco e compensação de movimento para remover as redundâncias espaciais e temporais. Eles são frequentemente chamados de formatos de vídeo preditivos. Cada quadro ou imagem do sinal de vídeo é dividido em fatias que são codificadas e podem ser decodificadas independentemente. Uma fatia é tipicamente uma parte retangular do quadro, ou mais geralmente, uma parte de um quadro ou um quadro inteiro. Ademais, cada fatia pode ser dividida em macroblocos (MBs), e cada macrobloco é dividido ainda em blocos, tipicamente blocos de 64x64, 32x32, 16x16 ou 8x8 pixels.
[0004] Em Codificação de Vídeo de Alta Eficiência (HEVC), blocos de 64x64, a 4x4 podem ser usados. A partição é organizada de acordo com uma estrutura quadtree baseada na maior unidade de codificação (LCU). Uma LCU corresponde, por exemplo, a um bloco quadrado de 64x64. Se uma LCU precisa ser dividida, um sinalizador de divisão indica que a LCU é dividida em 4 blocos de 32x32. Da mesma forma, se qualquer um desses 4 blocos precisa ser dividido, o sinalizador de divisão é configurado para verdadeiro e o bloco de 32x32 é dividido em 4 blocos de 16x16, etc. Quando um sinalizador de divisão é configurado para falso, o bloco atual é uma unidade de codificação CU. Uma CU tem um tamanho igual a 64x64, 32x32, 16x16 ou 8x8 pixels.
[0005] Há duas famílias de modos de codificação para codificar os blocos de uma imagem: modos de codificação baseados em predição espacial, chamada de predição INTRA e modos de codificação baseados em predição temporal (INTER, Merge, Skip). Tanto no modo de predição espacial quanto no modo de predição temporal, um residual é computado subtraindo-se a predição do bloco original.
[0006] Um bloco INTRA é geralmente predito por um processo de predição INTRA a partir dos pixels codificados em seu limite causal. Na predição INTRA, uma direção de predição é codificada.
[0007] A predição temporal consiste em encontrar em um quadro de referência, ou um quadro anterior ou um quadro futuro da sequência de vídeo, uma parte de imagem ou imagem de referência que está mais próxima do bloco a ser codificado. Essa etapa é tipicamente conhecida como estimativa de movimento. Em seguida, o bloco a ser codificado é predito usando a área de referência em uma etapa tipicamente chamada de compensação de movimento - a diferença entre o bloco a ser codificado e a parte de referência é codificada, junto com um item de informação de movimento em relação ao vetor de movimento que indica a área de referência a usar para compensação de movimento. Em predição temporal, pelo menos um vetor de movimento é codificado.
[0008] De modo a reduzir mais o custo de codificar informação de movimento, ao invés de codificar diretamente um vetor de movimento, assumindo-se que o movimento é homogêneo, o vetor de movimento pode ser codificado em termos de uma diferença entre o vetor de movimento e um preditor de vetor de movimento, tipicamente computado a partir de um ou mais vetores de movimento dos blocos circundantes ao bloco a ser codificado.
[0009] Em H.264, por exemplo, os vetores de movimento são codificados com relação a um preditor mediano computado a partir dos vetores de movimento situados em uma vizinhança causal do bloco a ser codificado, por exemplo, a partir dos três blocos situados acima e à esquerda do bloco a ser codificado. Somente a diferença, chamada de um vetor de movimento residual, entre o preditor mediano e o vetor de movimento de bloco atual é codificada no fluxo de bits para reduzir o custo de codificação.
[0010] A codificação usando vetores de movimento residuais economiza alguma taxa de bits, mas precisa que o decodificador execute a mesma computação do preditor de vetor de movimento de modo a decodificar o valor do vetor de movimento de um bloco a ser decodificado.
[0011] Tanto o processo de codificação e decodificação pode envolver um processo de decodificação de uma imagem codificada. Esse processo é tipicamente executado no lado do codificador com o propósito de estimativa de movimento futuro que possibilita que um codificador e um decodificador correspondente tenham os mesmos quadros de referência.
[0012] Para reconstruir o quadro codificado, o residual é quantizado inversamente e transformado inversamente de modo a fornecer o residual “decodificado” no domínio de pixel. A primeira reconstrução é então filtrada por um ou vários tipos de processos pós-filtragem. Esses pós-filtros são aplicados no quadro reconstruído no lado do codificador e decodificador de modo que o mesmo quadro de referência é usado em ambos os lados. O objetivo dessa pós-filtragem é remover ruídos de compressão e melhorar a qualidade de imagem. Por exemplo, H.264/AVC usa um filtro de desblocagem. Esse filtro pode remover artefactos de blocagem devido à quantização DCT de residual e à compensação de movimento do bloco. No padrão HEVC atual, 3 tipos de filtros de laço são usados: filtro de desblocagem, compensação adaptativa de amostra (SAO) e filtro adaptativo de laço (ALF).
[0013] A Figura 1 é um fluxograma que ilustra etapas de um processo de filtragem em laço de uma implementação HEVC conhecida. Em uma etapa inicial 101, o codificador ou decodificador gera a reconstrução do quadro total. Em seguida, na etapa 102, um filtro de desblocagem é aplicado na primeira reconstrução de modo a gerar uma reconstrução desblocada 103. O objetivo do filtro de desblocagem é remover ruídos de bloco gerados por quantização residual e compensação de movimento de bloco ou predição Intra de bloco. Esses ruídos são visualmente importantes em baixas taxas de bits. O filtro de desblocagem opera para suavizar os limiares dos blocos de acordo com as características de dois blocos vizinhos. O modo de codificação de cada bloco, os parâmetros de quantização usados para a codificação residual, e as diferenças de pixels vizinhos no limiar são levados em conta. O mesmo critério/classificação é aplicado para todos os quadros e nenhum dado adicional é transmitido. O filtro de desblocagem melhora a qualidade visual do quadro atual removendo ruídos de blocagem e também melhora a estimativa de movimento e a compensação de movimento para quadros subsequentes. De fato, altas frequências do ruído de bloco são removidas, e assim essas altas frequências não precisam ser compensadas com o residual de textura dos quadros seguintes.
[0014] Após o filtro de desblocagem, a reconstrução desblocada é filtrada por um filtro de laço de compensação adaptativa de amostra (SAO) na etapa 104. O quadro resultante 105 é então filtrado com um filtro adaptativo de laço (ALF) na etapa 106 para gerar o quadro reconstruído 107 que será exibido e usado como um quadro de referência para os quadros Inter seguintes.
[0015] O objetivo do filtro de laço SAO e o ALF é melhorar a reconstrução de quadro enviando dados adicionais ao contrário de um filtro de desblocagem onde nenhuma informação é transmitida.
[0016] O princípio do filtro de laço SAO é classificar cada pixel em uma classe e adicionar o mesmo valor de deslocamento ao respectivo valor de pixel de cada pixel da classe. Assim, um deslocamento é transmitido para cada classe. O filtro de laço SAO fornece dois tipos de classificação para uma área de quadro: deslocamento de borda e deslocamento de banda. A classificação de deslocamento de borda envolve determinar uma classe para cada pixel comparando seu correspondente valor de pixel com os valores de pixel de dois pixels vizinhos. Ademais, os dois pixels vizinhos dependem de um parâmetro que indica a direção dos dois pixels vizinhos. Essas direções são de 0 grau (direção horizontal), de 45 graus (direção diagonal), de 90 graus (direção vertical) e de 135 graus (segunda direção diagonal). Uma direção a ser usada é dada por um parâmetro SAO chamado de sao_type_idx nas atuais especificações HEVC. Seu valor varia tipicamente de zero a cinco, como mostrado na Tabela 1 do Apêndice. O sao_type_idx é também usado para indicar se ou não a filtragem SAO é executada e o tipo de filtragem SAO.
[0017] Com a finalidade de ilustração, o deslocamento a ser adicionado a um valor de pixel (ou amostra) C pode ser determinado, para uma dada direção, de acordo com as regras determinadas na Tabela 2 do Apêndice onde Cn1 e Cn2 designam o valor dos dois pixels vizinhos ou amostras (de acordo com a dada direção). Consequentemente, quando o valor C é menor do que os dois valores Cn1 e Cn2, o deslocamento a ser adicionado a C é +O1, quando é menor do que Cn1 ou Cn2 e igual ao outro calor (Cn1 ou Cn2), o deslocamento a ser usado é +O2, quando é maior do que Cni ou Cn2 e igual ao outro valor (Cni ou Cn2), o deslocamento a ser usado é - O3, e quando é maior do que Cni e Cn2, o deslocamento a ser usado é -O4. Quando nenhuma dessas condições é alcançada, nenhum valor de deslocamento é adicionado ao valor de pixel atual C.
[0018] Nota-se que, de acordo com o modo de Deslocamento de Borda, somente o valor absoluto de cada deslocamento é codificado no fluxo de bits, o sinal a ser aplicado determinado como uma função da categoria à qual o pixel atual pertence. Então, de acordo com a Tabela 2 do Apêndice, um deslocamento positivo está associado com as categorias 1 e 2, enquanto um deslocamento negativo está associado com as categorias 3 e 4.
[0019] O segundo tipo de classificação é uma classificação de Deslocamento de Banda que depende do valor de pixel. Uma classe em um deslocamento de banda SAO corresponde a uma faixa de valores de pixels. Assim, o mesmo deslocamento é adicionado a todos os pixels que têm um valor de pixel dentro de uma dada faixa de valores de pixels.
[0020] De modo a ser mais adaptativo ao conteúdo do quadro, a filtragem SAO é aplicada em várias áreas de quadro que dividem o quadro atual em várias regiões espaciais. Atualmente, as áreas de quadro correspondem a um número finito da Maior Unidade de Codificação em HEVC. Consequentemente, uma área de quadro pode ou não ser filtrada por SAO de modo que somente algumas áreas de quadro sejam filtradas. Ademais, quando SAO é habilitado, somente uma classificação SAO é usada: Deslocamento de Borda ou Deslocamento de Banda de acordo com os parâmetros relacionados transmitidos para cada classificação. Finalmente, para cada modo de folha SAO, a classificação SAO, bem como seus parâmetros e os deslocamentos de todas as classes são transmitidos.
[0021] Uma imagem de dados de vídeo a serem codificados pode ser fornecida como um conjunto de matrizes bidimensionais (também conhecidas como canais de cor) de valores de amostra, cada entrada das quais representa a intensidade de um componente de cor tal como uma medida da intensidade de luminância e intensidade de crominância a partir da cor em escala de cinza neutra em direção a azul ou vermelho (YUV) ou como uma medida da intensidade de componente de luz vermelho, verde ou azul (RGB). Um modelo YUV define um espaço de cor em termos de um componente de luma (Y) e dois componentes de crominância (UV). Geralmente, Y representa o componente de luminância e U e V são os componentes de crominância (cor) ou de croma.
[0022] A filtragem SAO é tipicamente aplicada independentemente do componente de Luma e de ambos os componentes de croma (U e V).
[0023] Uma implementação conhecida de deslocamento de Banda SAO divide a faixa de valores de pixels em 32 faixas predefinidas do mesmo tamanho, como representado na Figura 2. O valor mínimo da faixa de valores de pixels é sempre zero e o valor máximo depende da profundidade de bit dos valores de pixels de acordo com a seguinte relação Max = 2profundidade de bit — 1.
[0024] Dividir a faixa total de valores de pixels em 32 faixas possibilita o uso de cinco bits para classificar cada pixel, permitindo uma classificação rápida. Consequentemente, somente 5 bits são verificados para classificar um pixel em uma das 32 classes ou faixas da faixa total. Isso é geralmente feito através da verificação dos cinco bits mais significativos de valores codificados em 8 bits.
[0025] Por exemplo, quando a profundidade de bit é 8 bits, o valor máximo possível de um pixel é 255. Assim, a faixa de valores de pixels está entre 0 e 255. Para essaprofundidade de bit de 8 bits, cada classe inclui uma faixa de 8 valores de pixels.
[0026] O objetivo da filtragem do tipo de banda SAO é a filtragem de pixels pertencentes a um grupo de quatro classes ou faixas consecutivas que é determinado pela primeira classe ou banda. A última é transmitida no fluxo de bits de modo que o decodificador pode determinar as quatro classes ou faixas consecutivas dos pixels a serem filtrados. O parâmetro representando essa posição é chamado de sao_band_position nas especificações HEVC atuais.
[0027] Com a finalidade de ilustração, um grupo de quatro classes ou faixas consecutivas 201 a 204 de pixels a serem filtrados é representado na Figura 2 como uma área cinza. Como descrito acima, esse grupo pode ser identificado por essa posição (por exemplo, sao_band_position). De acordo com o dado exemplo, a classe ou faixa 201 refere-se a pixels tendo valores compreendidos entre 64 e 71. Similarmente, as classes ou faixas 202 a 204 referem-se a pixels tendo valores compreendidos entre 72 e 79, 80 e 87, 88 e 96, respectivamente.
[0028] A Figura 3 é um fluxograma que ilustra as etapas de um método para selecionar deslocamentos em um codificador para uma área de quadro atual 303 (tipicamente um bloco LCU correspondente a um componente da imagem processada). A área de quadro contém N pixels. Em uma etapa inicial 301, as variáveis Sumj e SumNbPixj são configuradas para um valor de zero para cada uma das quatro faixas. j denota o número de faixa ou classe atual. Sumj denota a soma da diferença entre o valor dos pixels na faixa j e o valor de seus pixels originais correspondentes. SumNbPixj denota o número de pixels na faixa j.
[0029] Na etapa 302, a contra variável i é configurada para o valor zero. Em seguida, o primeiro pixel Pi da área de quadro 303 é extraído na etapa 304 e o número de classe j correspondente ao pixel atual Pi é obtido na etapa 305. Em seguida, um teste é executado na etapa 306 para determinar se ou não o número de classe J do pixel atual Pi corresponde ao valor “N.A” como descrito acima com relação à Tabela 2 do Apêndice. Se o número de classe J do pixel atual Pi corresponde ao valor “N.A”, o valor da contra variável i é aumentado em um de modo a classificar os pixels subsequentes da área de quadro 303. De outra forma, se o número de classe J do pixel atual Pi não corresponde ao valor “N.A”, a variável SumNbPixj correspondente ao pixel atual Pi é aumentado em um e a diferença entre Pi e seu valor original Piorg é adicionado a Sumj na etapa 307.
[0030] Na etapa seguinte, a contra variável i é aumentada em um de modo a aplicar a classificação aos outros pixels da área de quadro 303. Na etapa 309, é determinado se ou não todos os N pixels da área de quadro 303 foram classificados (isto é, i > N), se sim, um Offsetj para cada classe é computado na etapa 310 de modo a produzir uma tabela de deslocamento 311 apresentando um deslocamento para cada classe j como um resultado final do algoritmo de seleção de deslocamento. Esse deslocamento é computado como a média da diferença entre os valores de pixels dos pixels de classe j e seus respectivos valores de pixels originais. O Offsetj para a classe j é dado pela seguinte equação:
Figure img0001
[0031] O deslocamento computado Offsetj pode ser considerado como um deslocamento ótimo em termos de distorção. Ele é chamado de Ooptj em seguida. A partir desse deslocamento, é possível determinar um valor de deslocamento aprimorado O_RDj de acordo com um critério de distorção de taxa.
[0032] A Figura 4 é um fluxograma que ilustra as etapas de um método para determinar um deslocamento aprimorado de acordo com um critério de distorção de taxa. Em uma etapa inicial 401, uma taxa de distorção de valor Jj da faixa atual ou número de classe j é inicializada para um valor possível máximo predeterminado (MAX_VALUE).
[0033] Em seguida, um laço é iniciado na etapa 402 para fazer o deslocamento Oj variar de Ooptj para zero. Se o valor Ooptj é negativo, a variável Oj é aumentada em um até que alcance zero e se o valor Ooptj é positivo, a variável Oj é diminuída em um até que alcance zero.
[0034] Na etapa 403, o custo de distorção de taxa relacionado à variável Oj, denotado J(Oj) é calculado, por exemplo, de acordo com a seguinte fórmula:
Figure img0002
[0035] X é o parâmetro Lagrange e R(Oj) é uma função que fornece o número de bits necessários para a palavra de código associada com Oj. A parte da fórmula correspondente a SumNbPiXj x Oj x Oj - Sumj x Oj x 2 refere-se ao aprimoramento em termos de distorção dada pelo deslocamento Oj.
[0036] Na etapa 404, os valores J(Oj) e Jj são comparados entre si. Se o valor J(Oj) é menor do que o valor Jj, então Jj é configurado para o valor de J(Oj) e O_RDj configurado para o valor de Oj.
[0037] Na etapa 405, é determinado se ou não todos os valores possíveis do deslocamento Oj foram processados (isto é, é Oj = 0). Se o deslocamento Oj é igual a zero, o laço é terminado e um valor de deslocamento aprimorado (O_RDj) para a classe j foi identificado. De outra forma, o laço continua com o próximo valor Oj.
[0038] Nota-se que o algoritmo descrito com relação à Figura 3 pode ser usado para determinar uma posição de uma primeira classe ou faixa (sao_band_position) de acordo com um tipo de classificação de Deslocamento de Banda. Para esse fim, o índice j representa um valor do intervalo [0, 32] (ao invés de [1, 4]). Em outras palavras, o valor 4 é substituído pelo valor 32 nos módulos 301, 310 e 311 da Figura 3.
[0039] Mais especificamente, a diferença Sumj entre o valor do pixel atual e seu valor original Porgi pode ser calculada para cada uma das 32 classes representadas na Figura 2, isto é, para cada faixa j (j pertencente ao intervalo [0, 32]).
[0040] Em seguida, um deslocamento aprimorado O_RDj, em termos de distorção de taxa, pode ser calculado para as 32 classes de acordo com um algoritmo similar ao descrito com relação à Figura 4.
[0041] Em seguida, a posição da primeira classe ou faixa pode ser determinada.
[0042] A Figura 5 é um fluxograma que ilustra as etapas de um método para determinar uma posição de banda SAO para o deslocamento de Banda SAO de HEVC. Como essas etapas são executadas após as descritas com relação à Figura 4, o valor de distorção de taxa denotado Jj já foi calculado para cada classe j.
[0043] Em uma etapa inicial 501, o valor de distorção de taxa J é iniciado para um valor possível máximo predeterminado (MAX_VALUE). Em seguida, um laço é iniciado na etapa 502 para fazer com que o índice i varie de zero a 27, correspondente às 28 possíveis posições da primeira classe do grupo de quatro classes consecutivas.
[0044] Na etapa 503, a variável Jj’ correspondente ao valor de distorção de taxa da banda atual, isto é, a banda compreendendo quatro classes consecutivas a partir da classe que tem o índice i, é inicializada em zero. Em seguida, um laço é iniciado na etapa 504 para fazer com que o índice j varie de i a i+3, correspondente às 4 classes da banda atual.
[0045] Em seguida, na etapa 505, o valor da variável Jj’ é aumentado pelo valor da distorção de taxa da classe tendo o índice j (Jj). Essa etapa é repetida para as quatro classes da banda atual, isto é, até que o índice j alcance i+3 (etapa 506). Na etapa 507, um teste é executado para determinar se ou não o valor de distorção de taxa Jj’ da banda atual é menor do que o valor de distorção de taxa J. Se o valor de distorção de taxa Jj’ da banda atual é menor do que o valor de distorção de taxa J, o valor de distorção de taxa J é configurado para o valor da distorção de taxa Jj’ da banda atual e o valor de posição de banda denotado sao_band_position é configurado para o valor do índice i.
[0046] Essas etapas são repetidas para as 28 posições possíveis da primeira classe do grupo de quatro classes consecutivas (etapa 508) para determinar a posição de banda a ser usada.
[0047] A Figura 6 é um fluxograma que ilustra as etapas de um método para filtrar uma área de quadro, tipicamente, um bloco LCU correspondente a um componente de uma imagem processada, de acordo com um filtro de laço SAO.
[0048] Tal algoritmo é geralmente implementado no decodificador para decodificar quadros e no codificador para gerar quadros de referência que são usados para estimativa de movimento e compensação de movimento de quadros seguintes.
[0049] Em uma etapa inicial 601, os parâmetros de filtragem SAO são obtidos, por exemplo, a partir de um fluxo de bits recebido. Para uma dada área de quadro, esses parâmetros compreendem tipicamente quatro deslocamentos que podem ser armazenados na tabela 603 e um parâmetro sao_type_idx. Dependendo do último, esses parâmetros podem compreender ainda uma posição de banda SAO. Com a finalidade de ilustração, se um parâmetro obtido do tipo sao_type_idx é igual a cinco, o parâmetro correspondente do tipo sao_band_position é então obtido (602). Outros parâmetros como os que permitem determinar o valor de um parâmetro SAO de uma dada área de quadro como uma função do valor do parâmetro correspondente de uma área de quadro anterior podem ser obtidos. Nota-se que um dado valor de um dado parâmetro SAO, tal como o valor zero para o parâmetro sao_type_idx, pode indicar que a filtragem SAO não é aplicada.
[0050] Na etapa 604, a contra variável i é configurada para o valor zero. Em seguida, o primeiro pixel Pi da área de quadro 605, compreendendo N pixels, é extraído na etapa 606 e classificado na etapa 607 de acordo com a classificação de deslocamento de Borda ou classificação de deslocamento de Banda, como descrito anteriormente.
[0051] Na etapa 608, um teste é executado para determinar se ou não o pixel Pi pertence a uma classe de pixels a serem filtrados. Se o pixel Pi pertence a uma classe de pixels a serem filtrados, seu número de classe relacionado j é identificado e seu valor de deslocamento relacionado Offsetj é obtido na etapa 610 a partir da tabela de deslocamentos 603. Em seguida, na etapa 611, Offsetj é adicionado ao valor de pixel Pi de modo a produzir um novo valor de pixel chamado de Pi’ (612). Na etapa 613, o pixel Pi’ substitui o pixel Pi na área de quadro processada 616. De outra forma, se o pixel Pi não pertence a uma classe de pixels a serem filtrados, o pixel Pi 609 permanece inalterado na área de quadro na etapa 613.
[0052] Em seguida, após ter processado o pixel Pi, a contra variável i é aumentada por um na etapa 614 de modo a aplicar o filtro similarmente ao próximo pixel da área de quadro atual 605.
[0053] Na etapa 615, é determinado se ou não todos os N pixels da área de quadro atual 605 foram processados (i > N). Se sim, a área de quadro processada 616 é reconstruída e pode ser adicionada ao quadro reconstruído SAO, como descrito acima com relação à Figura 1 (referência 105).
[0054] Uma desvantagem do processo conhecido para a seleção e transmissão de compensações é que um grande número de parâmetros tem que ser transmitido do codificador para o decodificador e armazenado em um armazenador temporário SAO. Ademais, o processo executado pelo decodificador para decodificar e processar esses parâmetros é complexo.
Sumário da Invenção
[0055] A presente invenção foi implementada para abordar uma ou mais das considerações anteriores.
[0056] De acordo com um primeiro aspecto da presente invenção, é fornecido um método para codificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreende pelo menos um parâmetro de filtragem, o método compreende:
[0057] codificar um primeiro e um segundo componente de pelo menos uma amostra da imagem para fornecer pelo menos uma amostra codificada;
[0058] decodificar pelo menos uma amostra codificada;
[0059] calcular pelo menos um parâmetro de filtragem como uma função da diferença entre pelo menos um componente de pelo menos uma amostra da imagem e pelo menos um componente correspondente de pelo menos uma amostra decodificada correspondente, pelo menos um parâmetro de filtragem sendo calculado para ser usado em um filtro de laço como um parâmetro de filtragem comum para filtrar tanto o primeiro quanto o segundo componente de uma amostra decodificada.
[0060] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência da codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e reduzir a complexidade da classificação.
[0061] De acordo com um segundo aspecto da presente invenção, é fornecido um método para decodificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de filtragem, o método compreende:
[0062] decodificar um primeiro e um segundo componente de pelo menos uma amostra codificada para fornecer um primeiro e um segundo componente de pelo menos uma amostra reconstruída;
[0063] decodificar pelo menos um parâmetro de filtragem;
[0064] filtrar pelo menos uma amostra reconstruída em um filtro de laço, a filtragem compreendendo usar pelo menos um parâmetro de filtragem decodificado como um parâmetro de filtragem comum para filtrar tanto o primeiro quanto o segundo componente de pelo menos uma amostra reconstruída.
[0065] De acordo com um terceiro aspecto da presente invenção, é fornecido um dispositivo de codificação para codificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de filtragem, o dispositivo de codificação compreende:
[0066] dispositivo para codificar um primeiro e um segundo componente de pelo menos uma amostra da imagem para fornecer pelo menos uma amostra codificada;
[0067] dispositivo para decodificar pelo menos uma amostra codificada;
[0068] dispositivo para calcular pelo menos um parâmetro de filtragem como uma função da diferença entre pelo menos um componente de pelo menos uma amostra da imagem e pelo menos um componente correspondente de pelo menos uma amostra decodificada correspondente, pelo menos um parâmetro de filtragem sendo calculado para ser usado em um filtro de laço como um parâmetro de filtragem comum para filtrar tanto o primeiro quanto o segundo componente de uma amostra decodificada.
[0069] De acordo com um quarto aspecto da presente invenção, é fornecido um dispositivo de decodificação para decodificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de filtragem, o dispositivo de decodificação compreende:
[0070] dispositivo para decodificar um primeiro e um segundo componente de pelo menos uma amostra codificada para fornecer um primeiro e um segundo componente de pelo menos uma amostra reconstruída;
[0071] dispositivo para decodificar pelo menos um parâmetro de filtragem;
[0072] dispositivo para filtrar pelo menos uma amostra reconstruída em um filtro de laço, a filtragem compreendendo usar pelo menos um parâmetro de filtragem decodificado como um parâmetro de filtragem comum para filtrar tanto o primeiro quanto o segundo componente de pelo menos uma amostra reconstruída.
[0073] Pelo menos partes dos métodos de acordo com a invenção podem ser implementadas por computador. Consequentemente, a presente invenção pode ter a forma de uma modalidade inteiramente de hardware, uma modalidade inteiramente de software (incluindo suporte lógico inalterável, software residente, microcódigo, etc.) ou uma modalidade combinando aspectos de software e hardware que podem ser geralmente chamados aqui de “circuito”, “módulo” ou “sistema”. Ademais, a presente invenção pode ter a forma de um produto de programa de computador incorporado em qualquer meio tangível de expressão tendo código de programa utilizado por computador incorporado no meio.
[0074] Como a presente invenção pode ser implementada em software, a presente invenção pode ser incorporada como código legível por computador para fornecimento a um aparelho programável em qualquer meio transportador. Um meio transportador tangível pode compreender um meio de armazenamento tal como um disco flexível, um CD-ROM, uma unidade de disco rígido, um dispositivo de fita magnética ou um dispositivo de memória de estado sólido e similares. Um meio transportador transiente pode incluir um sinal tal como um sinal elétrico, um sinal eletrônico, um sinal óptico, um sinal acústico, um sinal magnético ou um sinal eletromagnético, por exemplo, um sinal de micro-ondas ou RF.
[0075] Assim, de acordo com um quinto aspecto da presente invenção, é fornecido um produto de programa de computador para um aparelho programável, o produto de programa de computador compreende uma sequência de instruções para implementar cada etapa de um método incorporando o primeiro ou o segundo aspecto da presente invenção quando carregado em um aparelho programável e executado por ele.
[0076] Similarmente, de acordo com um sexto aspecto da presente invenção, é fornecido um meio de armazenamento legível por computador armazenando instruções de um programa de computador para implementar cada etapa de um método incorporando o primeiro ou o segundo aspecto da presente invenção.
Breve Descrição dos Desenhos
[0077] As modalidades da invenção serão agora descritas, por meio de exemplo somente, e com relação aos seguintes desenhos nos quais:
[0078] A Figura 1 é um fluxograma que ilustra as etapas de um processo de filtragem de laço da técnica anterior.
[0079] A Figura 2 ilustra graficamente uma classificação de deslocamento de Banda adaptativo de amostra de um processo HEVC da técnica anterior.
[0080] A Figura 3 é um fluxograma que ilustra as etapas de um processo para determinar os deslocamentos de compensação para o deslocamento de banda SAO de HEVC.
[0081] A Figura 4 é um fluxograma que ilustra um processo para selecionar um deslocamento SAO a partir de um ponto de vista de distorção de taxa.
[0082] A Figura 5 é um fluxograma que ilustra as etapas de um método para determinar uma posição de banda SAO para o deslocamento de banda SAO de HEVC.
[0083] A Figura 6 é um fluxograma que ilustra as etapas de um método para filtrar uma área de quadro de acordo com um filtro de laço SAO.
[0084] A Figura 7 é um diagrama de blocos que ilustra esquematicamente um sistema de comunicação de dados no qual uma ou mais modalidades da invenção podem ser implementadas.
[0085] A Figura 8 é um diagrama de blocos que ilustra os componentes de um dispositivo de processamento no qual uma ou mais modalidades da invenção podem ser implementadas.
[0086] A Figura 9 é um fluxograma que ilustra as etapas de um método de codificação de acordo com as modalidades da invenção.
[0087] A Figura 10 é um fluxograma que ilustra as etapas de um processo de filtragem de laço de acordo com uma ou mais modalidades da invenção.
[0088] A Figura 11 é um fluxograma que ilustra as etapas de um método de decodificação de acordo com as modalidades da invenção.
[0089] A Figura 12 é um fluxograma que ilustra as etapas de um método para obter parâmetros SAO a partir de um fluxo de bits de acordo com um modo de configuração de parâmero adaptativo.
[0090] A Figura 13 é um fluxograma que ilustra as etapas de um método para obter parâmetros SAO a partir de um fluxo de bits de acordo com um modo LCU.
[0091] A Figura 14 é um fluxograma que ilustra as etapas de um método para ler os parâmetros SÃO em um fluxo de bits.
[0092] As Figuras 15 e 16 são fluxogramas que ilustram as etapas de um método de acordo com uma primeira modalidade da invenção para determinar os parâmetros a serem usados em um filtro de laço para processar uma área de quadro atual.
[0093] A Figura 17 ilustra uma modalidade particular de acordo com a qual os valores dos deslocamentos associados com um componente correspondem aos valores espelhados dos deslocamentos associados com um segundo componente.
[0094] A Figura 18 ilustra como os valores de deslocamentos associados com um segundo componente podem ser obtidos a partir dos valores de deslocamentos associados com um primeiro componente quando aplicando um filtro de laço SAO usando uma classificação de deslocamento de banda.
[0095] A Figura 19 ilustra como um valor do parâmetro sao_band_position associado com um segundo componente Z pode ser obtido a partir do valor do parâmetro sao_band_position associado com um primeiro componente X quando aplicando um filtro de laço SAO usando uma classificação de deslocamento de banda.
[0096] A Figura 20 é um fluxograma que ilustra as etapas de um método para determinar um deslocamento ótimo a ser usado por dois ou três componentes de acordo com um critério de distorção de taxa.
[0097] A Figura 21 é um fluxograma que ilustra as etapas de um método para determinar uma posição de banda SAO compartilhada entre dois componentes.
[0098] A Figura 22 é um fluxograma que ilustra as etapas de um método para decodificar um fluxo de bits de acordo com uma modalidade particular da invenção.
[0099] A Figura 23 ilustra o uso de classificação SAO de um componente X para similarmente filtrar outro componente Z.
Descrição Detalhada da Invenção
[0100] A Figura 7 ilustra um sistema de comunicação de dados no qual uma ou mais modalidades da invenção podem ser implementadas. O sistema de comunicação de dados compreende um dispositivo de transmissão, nesse caso, um servidor 701, que é operável para transmitir pacotes de dados de um fluxo de dados para um dispositivo de recebimento, nesse caso, um terminal cliente 702, via uma rede de comunicação de dados 700. A rede de comunicação de dados 700 pode ser uma Rede de Área Ampla (WAN) ou uma Rede de Área Local (LAN). Tal rede pode ser, por exemplo, uma rede sem fio (WiFi / 802.11a ou b ou g), uma rede Ethernet, uma rede Internet ou uma rede mista composta de várias redes diferentes. Em uma modalidade particular da invenção, o sistema de comunicação de dados pode ser um sistema de transmissão de televisão digital no qual o servidor 701 envia o mesmo conteúdo de dados a múltiplos clientes.
[0101] O fluxo de dados 704 fornecido pelo servidor 701 pode ser composto de dados de multimídia representando dados de áudio e vídeo. Os fluxos de dados de áudio e vídeo podem, em algumas modalidades da invenção, ser capturados pelo servidor 701 usando um microfone e uma câmera, respectivamente. Em algumas modalidades, os fluxos de dados podem ser armazenados no servidor 701 ou recebidos pelo servidor 701 a partir de outro provedor de dados, ou gerados no servidor 701. O servidor 701 é fornecido com um codificador para codificar fluxos de áudio e vídeo, em particular, para fornecer um fluxo de bits comprimido para transmissão que é uma representação mais compacta dos dados apresentados como entrada ao codificador.
[0102] De modo a obter uma melhor relação da qualidade de dados transmitidos para a quantidade de dados transmitidos, a compressão dos dados de vídeo pode ser, por exemplo, de acordo com o formato HEVC ou formato H.264/AVC.
[0103] O cliente 702 recebe o fluxo de bits transmitido e decodifica o fluxo de bits reconstruído para reproduzir imagens de vídeo em um dispositivo de exibição e os dados de áudio por um alto-falante.
[0104] Embora um cenário de transmissão contínua seja considerado no exemplo da Figura 7, está claro que, em algumas modalidades da invenção, a comunicação de dados entre um codificador e um decodificador pode ser executada usando, por exemplo, um dispositivo armazenador de mídia, tal como um disco óptico.
[0105] Em uma ou mais modalidades da invenção, uma imagem de vídeo é transmitida com dados representando os deslocamentos de compensação para aplicação a pixels reconstruídos da imagem para fornecer pixels filtrados em uma imagem final.
[0106] A Figura 8 ilustra esquematicamente um dispositivo de processamento 800 configurado para implementar pelo menos uma modalidade da presente invenção. O dispositivo de processamento 800 pode ser um dispositivo tal como um microcomputador, uma estação de trabalho, ou um dispositivo portátil leve. O dispositivo 800 compreende um barramento de comunicação 813 conectado a:
[0107] - uma unidade de processamento central 811, tal como um microprocessador, denotada CPU;
[0108] - uma memória somente de leitura 807, denotada ROM, para armazenar programas de computador para implementar a invenção;
[0109] - uma memória de acesso aleatório 812, denotada RAM, para armazenar o código executável do método de modalidades da invenção, bem como os registradores adaptados para registrar variáveis e parâmetros necessários para implementar o método para codificar uma sequência de imagens digitais e/ou o método para decodificar um fluxo de bits de acordo com as modalidades da invenção; e
[0110] - uma interface de comunicação 802 conectada a uma rede de comunicação 803 ao longo da qual os dados digitais a serem processados são transmitidos ou recebidos.
[0111] Opcionalmente, o aparelho 800 pode também incluir os seguintes componentes:
[0112] - um dispositivo de armazenamento de dados 804 tal como um disco rígido, para armazenar programas de computador para implementar os métodos de uma ou mais modalidades da invenção e dados usados ou produzidos durante a implementação de uma ou mais modalidades da invenção;
[0113] - um disco rígido 805 para um disco 806, o disco rígido sendo adaptado para ler dados a partir do disco 806 ou gravar dados no dito disco;
[0114] - uma tela 809 para exibir dados e/ou servir como uma interface gráfica com o usuário, por meio de um teclado 810 ou qualquer outro dispositivo de apontamento.
[0115] O aparelho 800 pode ser conectado a vários periféricos, tal como, por exemplo, uma câmera digital 820 ou um microfone 808, cada um sendo conectado a um cartão de entrada/saída (não mostrado) de modo a fornecer dados de multimídia ao aparelho 800.
[0116] O barramento de comunicação fornece comunicação e interoperabilidade entre os vários elementos incluídos no aparelho 800 e, em particular, a unidade de processamento central é operável para comunicar instruções a qualquer elemento do aparelho 800 diretamente ou por meio de outro elemento do aparelho 800.
[0117] O disco 806 pode ser substituído por qualquer meio de informação tal como, por exemplo, um disco compacto (CD-ROM), regravável ou não, um disco ZIP ou um cartão de memória e, em termos gerais, por um dispositivo de armazenamento de informação que pode ser lido por um microcomputador ou por um microprocessador, integrado ou não no aparelho, possivelmente removível e adaptado para armazenar um ou mais programas cuja execução habilita o método para codificar uma sequência de imagens digitais e/ou o método para decodificar um fluxo de bits de acordo com a invenção a ser implementada.
[0118] O código executável pode ser armazenado ou em memória somente de leitura 807, no disco rígido 804 ou em um meio digital removível tal como, por exemplo, um disco 806 como descrito anteriormente. De acordo com uma variante, o código executável dos programas pode ser recebido por meio da rede de comunicação 803, via a interface 802, de modo a ser armazenado em um dos dispositivos de armazenamento do aparelho 800 antes de ser executado, tal como o disco rígido 804.
[0119] A unidade de processamento central 811 é adaptada para controlar e direcionar a execução das instruções ou porções de código de software do programa ou programas de acordo com a invenção, instruções que são armazenadas em um dos dispositivos de armazenamento mencionados anteriormente. Na inicialização, o programa ou programas que são armazenados em uma memória não volátil, por exemplo, no disco rígido 804 ou na memória somente de leitura 807, são transferidos para a memória de acesso aleatório 812, que então contém o código executável do programa ou programas, bem como registradores para armazenar as variáveis e parâmetros necessários para implementar a invenção.
[0120] Nesta modalidade, o aparelho é um aparelho programável que usa software para implementar a invenção. Entretanto, alternativamente, a presente invenção pode ser implementar em hardware (por exemplo, na forma de um Circuito Integrado de Aplicação Específica ou ASIC).
[0121] A Figura 9 ilustra um diagrama de bloco de um codificador 900 de acordo com pelo menos uma modalidade da invenção. O codificador é representado por módulos conectados, cada módulo sendo adaptado para implementar, por exemplo, na forma de instruções de programação a serem executadas pela CPU 811 do dispositivo 800, pelo menos uma etapa correspondente de um método implementando pelo menos uma modalidade de codificar uma imagem de uma sequência de imagens de acordo com uma ou mais modalidades da invenção.
[0122] Uma sequência original de imagens digitais i0 a in 901 é recebida como uma entrada pelo codificador 900. Cada imagem digital é representada por um conjunto de amostras, conhecidas como pixels.
[0123] Um fluxo de bits 910 é emitido pelo codificador 900 após a implementação do processo de codificação. O fluxo de bits 910 compreende uma pluralidade de unidades de codificação ou fatias, cada fatia compreendendo um cabeçalho de fatia para transmitir valores de codificação de parâmetros de codificação usados para codificar a fatia e um corpo de fatia, compreendendo dados de vídeo codificados.
[0124] As imagens digitais de entrada i0 a in 901 são divididas em blocos de pixels pelo módulo 902. Os blocos correspondem a porções de imagem e podem ser de tamanhos variáveis (por exemplo, 4x4, 8x8, 16x16, 32x32, 64x64 pixels). Um modo de codificação é selecionado para cada bloco de entrada. Duas famílias de modos de codificação são fornecidas: modos de codificação baseados em codificação de predição espacial (predição Intra), e modos de codificação baseados em predição temporal (codificação Inter, Merge, SKIP). Os possíveis modos de codificação são testados.
[0125] O módulo 903 implementa um processo de predição Intra, no qual o dado bloco a ser codificado é predito por um preditor calculado a partir de pixels da vizinhança do dito bloco a ser codificado. Uma indicação do preditor Intra selecionado e a diferença entre o dado bloco e seu preditor é codificada para fornecer um residual se a codificação Intra é selecionada.
[0126] A predição temporal é implementada pelo módulo de estimativa de movimento 904 e pelo módulo de compensação de movimento 905. Primeiramente, uma imagem de referência dentre um conjunto de imagens de referência 916 é selecionada, e uma parte da imagem de referência, também chamada de área ou parte de imagem de referência, que é a área mais próxima do dado bloco a ser codificado, é selecionada pelo módulo de estimativa de movimento 904. O módulo de compensação de movimento 905 então prevê o bloco a ser codificado usando a área selecionada. A diferença entre a área de referência selecionada e o dado bloco, também chamado de um bloco residual, é calculada pelo módulo de compensação de movimento 905. A área de referência selecionada é indicada por um vetor de movimento.
[0127] Assim, em ambos os casos (predição espacial e temporal), um residual é calculado subtraindo-se a predição do bloco original.
[0128] Na predição INTRA implementada pelo módulo 903, uma direção de predição é codificada. Na predição temporal, pelo menos um vetor de movimento é codificado.
[0129] A informação com relação ao vetor de movimento e ao bloco residual é codificada se a predição Inter é selecionada. Para reduzir mais a taxa de bits, assume- se que o movimento é homogêneo, o vetor de movimento é codificado por diferença com relação a um preditor de vetor de movimento. Os preditores de vetor de movimento de um conjunto de preditores de informação de movimento são obtidos a partir do campo de vetores de movimento 918 por um módulo de predição e codificação de vetor de movimento 917.
[0130] O codificador 900 compreende ainda um módulo de seleção 906 para seleção do modo de codificação aplicando um critério de custo de codificação, tal como um critério de distorção de taxa. De modo a reduzir mais as redundâncias, uma transformada (tal como DCT) é aplicada pelo módulo de transformação 907 ao bloco residual, os dados transformados obtidos são então quantizados pelo módulo de quantização 908 e codificados por entropia pelo módulo de codificação por entropia 909. Finalmente, o bloco residual codificado do bloco atual sendo codificado é inserido no fluxo de bits 910.
[0131] O codificador 900 também executa a decodificação da imagem codificada de modo a produzir uma imagem de referência para a estimativa de movimento das subsequentes imagens. Isso possibilita que o codificador e o decodificador recebendo o fluxo de bits tenham os mesmos quadros de referência. O módulo de quantização inversa 911 executa a quantização inversa dos dados quantizados, seguida por uma transformada inversa pelo módulo de transformação inversa 912. O módulo de predição intra reversa 913 usa a informação de predição para determinar qual preditor usar para um dado bloco e o módulo de compensação de movimento reversa 914 adiciona realmente o residual obtido pelo módulo 912 à área de referência obtida a partir do conjunto de imagens de referência 916.
[0132] A pós-filtragem é então aplicada pelo módulo 915 para filtrar o quadro de pixels reconstruídos. Nas modalidades da invenção, um filtro de laço SAO é usado, no qual deslocamentos de compensação são adicionados aos valores de pixels dos pixels reconstruídos da imagem reconstruída.
[0133] A Figura 10 é um fluxograma que ilustra as etapas do processo de filtragem de laço de acordo com pelo menos uma modalidade da invenção. Em uma etapa inicial 1001, o codificador gera a reconstrução do quadro total. Em seguida, na etapa 1002, um filtro de desblocagem é aplicado nessa primeira reconstrução de modo a gerar uma reconstrução desblocada 1003. O objetivo do filtro de desblocagem é remover ruídos de bloco gerados pela quantização residual e compensação de movimento de bloco ou predição Intra de blocos. Esses ruídos são visualmente importantes em baixas taxas de bits. O filtro de desblocagem opera para suavizar os limiares do bloco de acordo com as características de dois blocos vizinhos. O modo de codificação de cada bloco, os parâmetros de quantização usados para a codificação residual, e as diferenças de pixels vizinhos no limiar são levados em conta. O mesmo critério/classificação é aplicado para todos os quadros e nenhum dado adicional é transmitido. O filtro de desblocagem melhora a qualidade vidual do quadro atual removendo os ruídos de blocagem e também melhora a estimativa de movimento e a compensação de movimento para quadros subsequentes. De fato, altas frequências do ruído de bloco são removidas, e assim essas altas frequências não precisam ser compensadas com residual de textura dos quadros seguintes.
[0134] Após o filtro de desblocagem, a reconstrução desblocada é filtrada por um filtro de laço de deslocamento adaptativo de amostra (SAO) na etapa 1004 com base em uma classificação de pixels. O quadro resultante 1005 pode então ser filtrado com um filtro adaptativo de laço (ALF) na etapa 1006 para gerar o quadro reconstruído 1007 que será exibido e usado como um quadro de referência para os seguintes quadros Inter.
[0135] Na etapa 1004, cada pixel da área de quadro é classificado em uma classe da classificação determinada de acordo com seu valor de pixel. Uma classe corresponde a uma faixa determinada de valores de pixel. O mesmo valor de deslocamento de compensação é adicionado ao valor de pixel de todos os pixels que têm um valor de pixel dentro da dada faixa de valores de pixel.
[0136] A codificação e/ou decodificação de parâmetros SAO a serem trocados entre um servidor e um cliente e/ou armazenados local ou remotamente para decodificar pixels para a filtragem adaptativa de deslocamento de amostra será explicada em mais detalhes em seguida com relação a qualquer uma das Figuras 12 a 23.
[0137] A Figura 11 ilustra um diagrama de blocos de um decodificador 1100 que pode ser usado para receber dados a partir de um codificador de acordo com uma modalidade da invenção. O decodificador é representado por módulos conectados, cada módulo sendo adaptado para implementar, por exemplo, na forma de instruções de programação a serem executadas pela CPU 811 do dispositivo 800, uma etapa correspondente de um método implementado pelo decodificador 1100.
[0138] O decodificador 1100 recebe um fluxo de bits 1101 compreendendo unidades de codificação, cada uma sendo composta de um cabeçalho contendo informação sobre os parâmetros de codificação e um corpo contendo os dados de vídeo codificados. Como explicado com relação à Figura 9, os dados de vídeo codificados são codificados por entropia, e os índices dos preditores de vetor de movimento são codificados, para um dado bloco, em um número de bits predeterminado. Os dados de vídeo codificados recebidos são decodificados por entropia pelo módulo 1102. Os dados residuais são então desquantizados pelo módulo 1103 e então uma transformada reversa é aplicada pelo módulo 1104 para obter os valores de pixel.
[0139] Os dados de modo indicando o modo de codificação são também decodificados por entropia, e baseado no modo, uma decodificação do tipo INTRA ou uma decodificação do tipo INTER é executada nos blocos codificados de dados de imagem.
[0140] No caso de modo INTRA, um preditor INTRA é determinado pelo módulo de predição reversa intra 1105 com base no modo de predição intra especificado no fluxo de bits.
[0141] Se o modo é INTER, a informação de predição de movimento é extraída do fluxo de bits de modo a encontrar a área de referência usada pelo codificador. A informação de predição de movimento é composta do índice de quadro de referência e do residual de vetor de movimento. O preditor de vetor de movimento é adicionado ao residual de vetor de movimento de modo a obter o vetor de movimento pelo módulo de decodificação de vetor de movimento 1110.
[0142] O módulo de decodificação de vetor de movimento 1110 aplica a decodificação de vetor de movimento para cada bloco atual codificado pela predição de movimento. Uma vez que um índice do preditor de vetor de movimento, para o bloco atual, foi obtido, o valor real do vetor de movimento associado com o bloco atual pode ser decodificado e usado para aplicar compensação de movimento reversa pelo módulo 1106. A parte de imagem de referência indicada pelo vetor de movimento decodificado é extraída de uma imagem de referência 1108 para aplicar a compensação de movimento reversa 1106. Os dados de campo de vetor de movimento 1111 são atualizados com o vetor de movimento decodificado de modo a ser usado para a predição inversa de subsequentes vetores de movimento decodificados.
[0143] Finalmente, um bloco decodificado é obtido. A pós-filtragem é aplicada pelo módulo de pós-filtragem 1107 similarmente ao módulo de pós-filtragem 915 aplicado no codificador como descrito com relação à Figura 9. Um sinal de vídeo decodificado 1109 é finalmente fornecido pelo decodificador 1000.
[0144] A Figura 12 é um fluxograma que ilustra as etapas de um método para obter parâmetros SAO a partir de um fluxo de bits de acordo com um modo de Configuração de Parâmetro Adaptativos (APS). Consequentemente, a Figura 12 ilustra como os parâmetros SAO são armazenados em um fluxo de bits quando o modo de Configuração de Parâmetro Adaptativos é usado para associar um único conjunto de parâmetros SAO por área de quadro. De acordo com esse modo, um conjunto de parâmetros SAO é válido para uma área de quadro retangular cujo tamanho é um múltiplo do tamanho da Maior Unidade de Codificação (LCU). De modo a reduzir a quantidade de bits para armazenar todos os parâmetros SAO de um quadro para esse modo particular, uma técnica de codificação de comprimento total é usada, bem como um sinalizador de predição a partir da área de quadro acima.
[0145] De acordo com o modo APS implementado nas especificações atuais de HEVC, há sinalizadores indicando se ou não a filtragem de laço SAO está habilitada para os componentes de uma dada imagem. Isso significa que, por exemplo, quando considerando-se uma imagem codificada de acordo com o esquema YUV, os parâmetros SAO para o componente U ou o componente V podem estar ou habilitados ou desabilitados.
[0146] Tais sinalizadores são lidos em uma etapa inicial 1201. Em seguida, na etapa 1202, o tamanho da área de quadro à qual um conjunto de parâmetros SAO é aplicado é obtido. Como descrito acima, a área de quadro onde a filtragem de laço SAO tem que ser aplicada quando usando o modo APS, corresponde a uma área que é igual ao tamanho da LCU ou que corresponde a um tamanho múltiplo do tamanho da LCU.
[0147] Em seguida, um laço é iniciado na etapa 1203 para manipular sucessivamente cada componente de cor da sequência denotada X. Esse laço habilita a leitura do sinalizador “unicity” para cada componente que é executada na etapa 1204. Em seguida, um teste é executado na etapa 1205 para determinar se ou não a leitura do sinalizador “unicity” é verdadeira. Se a leitura do sinalizador “unicity” é verdadeira, somente existe um único conjunto de parâmetros SAO, considerando o componente X processado atual, para a imagem toda. Em tal caso, os parâmetros SAO são lidos no fluxo de bits na etapa 1206. Tal etapa é descrita em detalhes com relação à Figura 14. De outra forma, se a leitura do sinalizador “unicity” não é verdadeira, há mais de um parâmetro SAO para a imagem toda com relação ao componente X processado atual. Em tal caso, os parâmetros SAO são lidos nas etapas seguintes, como descrito com relação às etapas 1208 a 1218.
[0148] Em seguida, um teste é executado na etapa 1207 para determinar se ou não o componente X processado atual é o último componente a ser processado. Se ele for o último componente a ser processado, o algoritmo é ramificado para a etapa 1203 e as etapas anteriores são repetidas para os componentes restantes.
[0149] Nota-se que se o sinalizador “unicity” é verdadeiro para um componente, as etapas 1208 e 1218 não são executadas para esse componente.
[0150] A partir da etapa 1208, os parâmetros SAO são determinados para cada área de quadro e para cada componente quando há mais de um conjunto de parâmetros SAO por componente.
[0151] Um laço é iniciado na etapa 1208 para manipular sucessivamente cada área de quadro da dada imagem a ser processada de acordo com o tamanho da área de quadro determinado na etapa 1202. No dado exemplo da Figura 12, as áreas de quadro são processadas em ordem de varredura raster onde o processo começa com a primeira linha de áreas de quadro da imagem e continua até a última linha da imagem. As áreas de quadro são processadas do lado esquerdo para o lado direito da imagem.
[0152] Em seguida, outro laço é iniciado na etapa 1209 para manipular sucessivamente cada componente denotado X. Nota-se aqui que se o sinalizador “habilitar” do componente atual, lido na etapa 1201, é falso, as próximas etapas para o componente considerado são ignoradas na etapa 1209 e o próximo componente é selecionado para ser processado. Na etapa 1210, um sinalizador “repeat row” é lido. Em seguida, na etapa 1211, um teste é executado para determinar se ou não esse sinalizador é verdadeiro. Se ele é verdadeiro, os parâmetros SAO da linha anterior da área de quadro são usados para a linha atual da área de quadro. Isso torna possível economizar muitos bits em representar os parâmetros SAO no fluxo de bits somente sinalizando que a linha atual usa os mesmos parâmetros da linha anterior.
[0153] De outra forma, se a leitura do sinalizador “repeat row” é falsa, a área de quadro atual é codificada no fluxo de bits e o algoritmo é ramificado para a etapa 1213 onde um teste é executado para determinar se ou não uma técnica preditiva (usando codificação por carreira ou o valor dos parâmetros SAO da área de quadro acima) é usada para codificar e representar os parâmetros SAO associados com uma área de quadro anterior na linha atual. Nesse caso, os parâmetros SAO da área de quadro atual são deduzidos, na linha atual, na etapa 1214, a partir de uma área de quadro anterior. Mais especificamente, dois elementos de sintaxe são usados: sao_run_diff e sao_merge_up_flag que indicam respectivamente se os parâmetros SAO são codificados de acordo com um método de codificação por carreira ou são deduzidos a partir dos parâmetros SAO da área de quadro acima. De outra forma, se a resposta é negativa na etapa 1213, os parâmetros SAO para essa área de quadro particular são explicitamente codificados no fluxo de bits. Consequentemente, esses parâmetros SAO são lidos a partir do fluxo de bits na etapa 1215. Essa etapa é similar à 1206 e é ainda descrita com relação à Figura 14.
[0154] Após a etapa 1212, quando os parâmetros SAO são determinados para uma linha inteira, um teste é executado na etapa 1216 para determinar se ou não o componente atual é o último componente a ser processado. Se não é o último componente a ser processado, o algoritmo é ramificado para a etapa 1209 para processar o(s) próximo(s) componente(s). Similarmente, quando os parâmetros SAO são determinados para a área de quadro atual, ou executando a etapa 1214 ou a etapa 1215, o algoritmo é ramificado para a etapa 1216 para determinar se ou não o componente atual é o último componente a ser processado. Novamente, se ele não é o último componente a ser processado, o algoritmo é ramificado para a etapa 1209 para processar o(s) próximo(s) componente(s).
[0155] De outra forma, se todos os componentes foram processados, um teste é executado na etapa 1217 para determinar se ou não a última área de quadro foi processada. Se a última área de quadro não foi processada, o processo é ramificado para a etapa 1208 e as etapas anteriores são repetidas. De outra forma, o processo termina.
[0156] Nesse estágio, um conjunto de parâmetros SAO, com os diferentes parâmetros apresentados com relação à Figura 14, está associado com cada área de quadro e para cada componente.
[0157] A Figura 13 é um fluxograma que ilustra as etapas de um método para obter parâmetros SAO a partir de um fluxo de bits de acordo com um modo LCU. Então, a Figura 13 ilustra uma alternativa para codificar os parâmetros SAO para o modo APS. Mais especificamente, a Figura 13 ilustra como os parâmetros SAO podem ser armazenados em um fluxo de bits quando a representação de modo de Maior Unidade de Codificação (LCU) é usada para associar um único conjunto de parâmetros SAO por LCU. De modo a evitar a codificação de um conjunto de parâmetros SAO por LCU, que é custosa, um esquema preditivo pode ser usado. No dado exemplo, esse modo preditivo consiste em verificar se a LCU posicionada à esquerda da LCU atual usa os mesmos parâmetros SAO. Se não, uma segunda verificação é executada com a LCU posicionada acima da LCU atual. Essa técnica preditiva habilita uma redução na quantidade de dados para representar os parâmetros SAO para o modo LCU. Ela é baseada no uso de sinalizadores dedicados chamados de sinalizadores Merge.
[0158] Na etapa 1301, um laço é iniciado para manipular sucessivamente cada componente denotado X. Com a finalidade de ilustração, as imagens são ainda codificadas de acordo com o esquema YUV. Em seguida, na etapa 1303, um sinalizador denotado sao_merge_left_flag_X (onde X representa Y, U ou V) é lido a partir do fluxo de bits 1302 a ser processado e decodificado. Se esse valor é verdadeiro, os parâmetros SAO da LCU posicionada à esquerda da LCU atual são selecionados na etapa 1304 para serem usados para processar a LCU atual. Mais especificamente, isso habilita a determinação na etapa 1308 do tipo de filtro de laço SAO a ser aplicado na LCU atual.
[0159] De outra forma, se o sinalizador lido denotado sao_merge_left_flag_X é falso, um sinalizador denotado sao_merge_up_flag_X (onde X representa Y, U ou V) é lido a partir do fluxo de bits 1302 e decodificado. Se seu valor é verdadeiro, os parâmetros SAO da LCU posicionados acima da LCU atual são selecionados na etapa 1306 a serem usados para processar a LCU atual. Novamente, isso habilita a determinação na etapa 1308 do tipo de filtro de laço SAO a ser aplicado na LCU atual.
[0160] De outra forma, se o sinalizador lido denotado sao_merge_up_flag_X é falso, os parâmetros SAO a serem usados para processar a LCU atual são lidos e decodificados a partir do fluxo de bits 1302 na etapa 1307, o último sendo descrito com relação à Figura 14.
[0161] Nesse estágio, os parâmetros SAO para processar a LCU atual são obtidos e o tipo de filtro de laço SAO a ser aplicado na LCU atual é determinado na etapa 1308.
[0162] Em seguida, na etapa 1309, um teste é executado para determinar se ou não todos os componentes Y, U e V foram processados para a LCU atual. Se nem todos os componentes foram processados, o próximo componente é selecionado, o algoritmo é ramificado para a etapa 1301, e as etapas anteriores são repetidas.
[0163] Em seguida, a próxima LCU pode ser processada similarmente.
[0164] A Figura 14 é um fluxograma que ilustra as etapas de um método para ler os parâmetros SAO em um fluxo de bits. Consequentemente, a Figura 14 ilustra a forma com que os parâmetros SAO são armazenados em um fluxo de bits codificado.
[0165] Em uma etapa inicial 1402, um sinalizador denotado sao_type_idx_X (onde X representa Y, U ou V) é lido a partir do fluxo de bits 1401 e decodificado. A palavra de código que representa esse elemento de sintaxe pode usar um código de comprimento fixo ou qualquer método de codificação aritmética.
[0166] Como descrito acima com relação à Tabela 1 do Apêndice, esse elemento de sintaxe torna possível determinar o tipo do filtro de laço SAO a ser aplicado na área de quadro para processar o componente X. De acordo com o dado exemplo, o sinalizador sao_type_idx_X (ou genericamente sao_type_idx) pode ter um dos cinco valores que depende do filtro de laço SAO a ser aplicado. Como determinado na Tabela 1 do Apêndice, 0 corresponde a nenhum filtro de laço SAO, 1 a 4 correspondem a 4 categorias de filtro de laço SAO de deslocamento de Borda como descrito com relação à Tabela 2 do Apêndice, e o valor 5 corresponde ao filtro de laço SAO de deslocamento de banda.
[0167] Um teste é executado na etapa 1402, após ter lido e decodificado o sinalizador sao_type_idx_X, para determinar se ou não o valor desse índice é estritamente positivo. Se o valor desse índice é igual a zero, o que significa que nenhum filtro de laço SAO é aplicado na área de quadro atual, a determinação dos parâmetros SAO termina na etapa 1407. De outra forma, se o valor do sinalizador sao_type_idx_X é estritamente positivo, os parâmetros SAO existem no fluxo de bits 1401 para a área de quadro atual.
[0168] Em seguida, um teste é executado na etapa 1403 para determinar se ou não o tipo do filtro de laço SAO a ser aplicado é do tipo de deslocamento de Banda (sao_type_idx_X = 5). Se o filtro de laço SAO a ser aplicado é do tipo de deslocamento de Banda, a posição da banda SAO é lida na etapa 1404 no fluxo de bits 1401 e decodificada.
[0169] Após ter lido a posição da banda SAO na etapa 1404, um laço é iniciado na etapa 1405 para ler e decodificar quatro Offsetj (j variando de 1 a 4) na etapa 1406 a partir do fluxo de bits 1401. Esses quatro deslocamentos correspondem aos quatro deslocamentos com relação às quatro faixas do deslocamento de banda SAO, como descrito com relação à Figura 2.
[0170] Similarmente, se o valor do sinalizador sao_type_idx_X é positivo e diferente de 5, um laço é iniciado na etapa 1405 para ler e decodificar quatro Offsetj (j variando de 1 a 4) a partir do fluxo de bits 1401. Esses quatro deslocamentos correspondem aos quatro deslocamentos dos quatro tipo de deslocamento de borda SAO como descrito com relação à Tabela 2 do Apêndice.
[0171] Quando os quatro deslocamentos foram lidos e decodificados na etapa 1406, a leitura dos parâmetros SAO termina na etapa 1407.
[0172] De acordo com uma primeira modalidade principal, alguns ou todos os parâmetros SAO são compartilhados entre os componentes. Para esse fim, os processos são definidos para derivar os parâmetros SAO de um componente para outro. Tais dependências entre os componentes podem ser definidas para os dois tipos de classificações SAO (deslocamentos de borda e de banda).
[0173] Como descrito anteriormente com relação à Figura 13, dois sinalizadores denotados sao_merge_left_flag_X e sao_merge_up_flag_X são usados na implementação atual de HEVC para o modo LCU de modo a obter os parâmetros SAO como uma função dos parâmetros SAO anteriormente processados. O sinalizador denotado sao_merge_left_flag_X visa especificar que os parâmetros SAO a serem usados para processar o componente X da LCU atual são aqueles usados para processar o mesmo componente da LCU posicionada à esquerda da LCU atual. Similarmente, o sinalizador denotado sao_merge_up_flag_X visa especificar que os parâmetros SAO a serem usados para processar o componente X da LCU atual são aqueles usados para processar o mesmo componente da LCU posicionada acima da LCU atual.
[0174] De acordo com uma modalidade particular, esses sinalizadores são comuns para dois ou três componentes da LCU atual. Em outras palavras, os sinalizadores dos tipos sao_merge_left_flag e sao_merge_up_flag não são mais usados para especificar que os parâmetros SAO a serem usados para processar um componente da LCU atual são aqueles usados para processar o mesmo componente de outra LCU, mas especificar que os parâmetros SAO a serem usados para processar dois ou três componentes da LCU atual são aqueles usados para processar os mesmos dois ou três componentes de outra LCU. Com a finalidade de ilustração, os sinalizadores denotados sao_merge_left_flag_UV e sao_merge_up_flag_UV podem ser considerados para especificar que os parâmetros SAO a serem usados para processar os compo-nentes U e V da LCU atual são aqueles usados para processar os componentes U e V da LCU posicionada à esquerda ou acima da LCU atual, respectivamente.
[0175] De acordo com outra modalidade particular, os sinalizadores são usados para especificar que os parâmetros SAO a serem usados para processar dois ou três componentes da LCU atual são aqueles usados para processar um componente de outra LCU. Como uma consequência, um sinalizador associado com um componente da LCU atual pode indicar qual dentre a LCU esquerda e acima é considerada como referência e, nessa LCU, quais dos componentes é usado para obter os parâmetros SAO. Então, os sinalizadores podem ser os seguintes: sao_merge_left_flag_Y, sao_merge_left_flag_U, sao_merge_left_flag_V, sao_merge_up_flag_Y, sao_merge_up_flag_U, e sao_merge_up_flag_V. Com a finalidade de ilustração, os parâmetros SAO de um componente da LCU atual que se refere ao sinalizador sao_merge_left_flag_V são os parâmetros SAO associados com o componente V da LCU posicionada à esquerda da LCU atual.
[0176] Nesta modalidade, os parâmetros SAO associados com cada componente de uma LCU são preferencialmente os mesmos (para cada componente dessa LCU) quando eles se referem aos de outra LCU. Com a finalidade de ilustração, os parâmetros SAO de todos os componentes da LCU atual que um componente se refere ao sinalizador sao_merge_left_flag_V são os parâmetros SAO associados com o componente V da LCU posicionada à esquerda da LCU atual. Consequentemente, os parâmetros SAO do componente de Luma esquerdo (Y) podem ser usados para filtrar o componente de Croma (U) da LCU atual.
[0177] A Figura 15 é um fluxograma que ilustra as etapas de um método de acordo com uma primeira modalidade da invenção para determinar os parâmetros a serem usados em um filtro de laço para processar uma área de quadro atual. O exemplo dado na Figura 15 pode ser visto como uma combinação das duas modalidades particulares descritas aqui acima.
[0178] Na etapa 1502, o sinalizador denotado sao_merge_left_flag_Y é obtido a partir do fluxo de bits 1501 e um teste é executado para determinar se ou não o valor desse sinalizador é igual a um (isto é, se ele é verdadeiro). Se o sinalizador denotado sao_merge_left_flag_Y é verdadeiro, é determinado na etapa 1503 que os parâmetros SAO a serem usados para filtrar os componentes Y, U e V da LCU atual são iguais aos determinados anteriormente para filtrar o componente Y na LCU posicionada à esquerda da LCU atual.
[0179] Consequentemente, os valores dos sinalizadores sao_type_idx_U e sao_type_idx_V para a LCU atual, definindo o tipo do filtro de laço a ser aplicado no componente U e V da LCU atual, são considerados iguais ao do sinalizador sao_type_idx_Y da LCU posicionada à esquerda da LCU atual. Igualmente, os outros parâmetros SAO usados para filtrar os componentes U e V da LCU atual, por exemplo, os valores de deslocamento e, se necessário, as posições de banda (sao_band_position_U e sao_band_position_V) são obtidas a partir daquelas posições do componente Y da LCU posicionada à esquerda da LCU atual.
[0180] De outra forma, se o sinalizador denotado sao_merge_left_flag_Y é falso, o sinalizador denotado sao_merge_up_flag_Y é obtido a partir do fluxo de bits 1501 e um teste é executado para determinar se ou não o valor desse sinalizador é igual a um (isto é, se é verdadeiro) na etapa 1504. Se o sinalizador denotado sao_merge_up_flag_Y é verdadeiro, é determinado na etapa 1505 que os parâmetros SAO a serem usados para filtrar os componentes Y, U e V da LCU atual são igual aos previamente determinados para filtrar o componente Y na LCU posicionada acima da LCU atual.
[0181] Consequentemente, os valores dos sinalizadores sao_type_idx_U e sao_type_idx_V para a LCU atual, definindo o tipo do filtro de laço a ser aplicado nos componentes U e V da LCU atual, são considerados iguais ao do sinalizador sao_type_idx_Y da LCU posicionada acima da LCU atual. Igualmente, os outros parâmetros SAO usados para filtrar os componentes U e V da LCU atual, por exemplo, os valores de deslocamento e, se necessário, as posições de banda (sao_band_position_U e sao_band_position_V) são obtidos a partir das posições do componente Y da LCU posicionada acima da LCU atual.
[0182] De outra forma, se o sinalizador denotado sao_merge_up_flag_Y é falso, os parâmetros SAO para o componente Y da LCU atual são extraídos do fluxo de bits 1501 na etapa 1511, como descrito acima com relação à Figura 14. Em tal caso, o valor dos sinalizadores sao_type_idx_Y, sao_band_position_Y (se necessário), e os quatro offsetj_Y são extraídos do fluxo de bits 1501.
[0183] Em seguida, se o sinalizador denotado sao_merge_up_flag_Y é falso, na etapa 1506, o sinalizador denotado sao_merge_left_flag_UV é obtido a partir do fluxo de bits 1501 e um teste é executado para determinar se ou não o valor desse sinalizador é igual a um (isto é, se é verdadeiro). Se o sinalizador denotado sao_merge_left_flag_UV é verdadeiro, é determinado na etapa 1507 que os parâmetros SAO a serem usados para filtrar os componentes U e V da LCU atual são iguais aos previamente determinados para filtrar os componentes U e V, respectivamente, na LCU posicionada à esquerda da LCU atual.
[0184] De outra forma, se o sinalizador denotado sao_merge_left_flag_UV é falso, o sinalizador denotado sao_merge_up_flag_UV é obtido a partir do fluxo de bits 1501 e um teste é executado para determinar se ou não o valor desse sinalizador é igual a um (isto é, se é verdadeiro) na etapa 1508. Se o sinalizador sao_merge_up_flag_UV é verdadeiro, é determinado na etapa 1509 que os parâmetros SAO a serem usados para filtrar os componente U e V da LCU atual são iguais aos previamente determinados para filtrar os componentes U e V, respectivamente, na LCU posicionada acima da LCU atual.
[0185] De outra forma, se o sinalizador denotado sao_merge_up_flag_UV é falso, os parâmetros SAO para os componentes U e V da LCU atual são extraídos do fluxo de bits 1501 na etapa 1510, como descrito acima com relação à Figura 14. Em tal caso, o valor dos sinalizadores sao_type_idx_U, sao_type_idx_V, sao_band_position_U (se necessário), sao_band_position_V (se necessário), os quatro offsetj_U, e os quatro offsetj_V são extraídos do fluxo de bits 1501. Nesse estágio (referência 1512), todos os parâmetros SAO para todos os componentes da LCU atual estão disponíveis.
[0186] Em seguida, na etapa 1513, o filtro de laço SAO é aplicado em todos os componentes da LCU atual e o processo de decodificação vai para a próxima etapa de decodificação 1314.
[0187] Ainda de acordo com uma modalidade particular, os sinalizadores comuns a todos os componentes da LCU atual, por exemplo, os sinalizadores sao_merge_left_flag_YUV e sao_merge_up_flag_YUV podem ser usados. Em tal caso, se ambos os sinalizadores são falsos, os sinalizadores direcionados para cada componente, genericamente chamados de sao_merge_left_flag_X e sao_merge_up_flag_X (onde X representa Y, U, ou V) podem ser usados.
[0188] A Figura 16 é um fluxograma que ilustra as etapas de um método de acordo com a primeira modalidade da invenção para determinar os parâmetros a serem usados em um filtro de laço para processar uma área de quadro atual. O exemplo dado na Figura 16 é mais especificamente direcionado à terceira modalidade particular descrita acima.
[0189] Na etapa 1602, o sinalizador denotado sao_merge_left_flag_YUV é obtido a partir do fluxo de bits 1601 e um teste é executado para determinar se ou não o valor desse sinalizador é igual a um (isto é, se é verdadeiro). Se o sinalizador denotado sao_merge_left_flag_YUV é verdadeiro, é determinado na etapa 1603 que os parâmetros SAO a serem usados para filtrar os componentes Y, U e V da LCU atual são iguais aos previamente determinados para filtrar os componentes Y, U e V, respectivamente, na LCU posicionada à esquerda da LCU atual.
[0190] Consequentemente, os valores dos sinalizadores sao_type_idx_Y, sao_type_idx_U, e sao_type_idx_V para a LCU atual, definindo o tipo do filtro de laço a ser aplicado nos componentes Y, U e V da LCU atual, são considerados iguais aos dos sinalizadores correspondentes da LCU posicionada à esquerda da LCU atual. Igualmente, os outros parâmetros SAO usados para filtrar os componentes Y, U e V da LCU atual são obtidos a partir daqueles parâmetros correspondentes da LCU posicionada à esquerda da LCU atual.
[0191] De outra forma, se o sinalizador denotado sao_merge_left_flag_YUV é falso, o sinalizador denotado sao_merge_up_flag_YUV é obtido a partir do fluxo de bits 1601 e um teste é executado para determinar se ou não o valor desse sinalizador é igual a um (isto é, se é verdadeiro) na etapa 1604. Se o sinalizador denotado sao_merge_up_flag_YUV é verdadeiro, é determinado na etapa 1605 que os parâmetros SAO a serem usados par filtrar os componentes Y, U e V da LCU atual são iguais aos previamente determinados para filtrar os componentes Y, U e V, respectivamente, na LCU posicionada acima da LCU atual.
[0192] De outra forma, se o sinalizador denotado sao_merge_up_flag_YUV é falso, os sinalizadores associados com cada componente da LCU atual, para determinar se ou não os parâmetros SAO são obtidos como uma função de parâmetros SAO processados anteriormente, são decodificados.
[0193] Para esse fim, um laço é iniciado na etapa 1606 para processar sequencialmente cada componente da LCU atual. Para cada componente X (com X sendo igual a Y, U ou V), o sinalizador denotado sao_merge_left_flag_X é extraído do fluxo de bits 1601 e um teste é executado para determinar se ou não o valor desse sinalizador é igual a um (isto é, se é verdadeiro) na etapa 1607. Se o sinalizador denotado sao_merge_left_flag_X é verdadeiro, é determinado na etapa 1608 que os parâmetros SAO a serem usados para filtrar o componente X da LCU atual são iguais aos determinados previamente para filtrar o mesmo componente na LCU posicionada à esquerda da LCU atual.
[0194] De outra forma, se o sinalizador denotado sao_merge_left_flag_X é falso, o sinalizador denotado sao_merge_up_flag_X é obtido a partir do fluxo de bits 1601 e um teste é executado para determinar se ou não o valor desse sinalizador é igual a um (isto é, se é verdadeiro) na etapa 1609. Se o sinalizador denotado sao_merge_up_flag_X é verdadeiro, é determinado na etapa 1610 que os parâmetros SAO a serem usados para filtrar o componente X da LCU atual são iguais aos previamente determinados para filtrar o mesmo componente na LCU posicionada acima da LCU atual.
[0195] De outra forma, se o sinalizador denotado sao_merge_up_flag_X é falso, os parâmetros SAO para o componente X para a LCU atual são extraídos do fluxo de bits 1601 na etapa 1611.
[0196] Em seguida, após ter obtido os parâmetros SAO para o componente X da LCU atual, na etapa 1612, um teste é executado para determinar se ou não o componente X é o componente V. Se o componente X não é o componente V, o processo é ramificado para a etapa 1606 para processar o próximo componente. De outra forma, se o componente X é o componente V, os parâmetros SAO são decodificados e disponíveis para todos os componentes da LCU atual na etapa 1613.
[0197] Em seguida, na etapa 1614, os componentes da LCU atual são filtrados em um filtro de laço SAO usando os parâmetros SAO obtidos e o decodificador vai para a próxima etapa de decodificação na etapa 1615.
[0198] Nota-se que as modalidades descritas com relação às Figuras 15 e 16 são baseadas na sintaxe LCU descrita com relação à Figura 13. Entretanto, essas modalidades podem também ser baseadas na sintaxe SAO para APS, como descrito com relação à Figura 12. Nesse caso particular, os parâmetros compartilhados entre os componentes são os parâmetros SAO, bem como os sinalizadores denotados unicity e repeat row e os elementos de sintaxe denotados sao_run_diff e sao_merge_up_flag.
[0199] Como descrito acima, em particular com relação à Tabela 1 do Apêndice, o elemento de sintaxe ou sinalizador denotado sao_type_idx especifica que o componente atual da LCU atual não é processado quando seu valor é igual a zero. De outra forma, ele especifica o tipo SAO. Se o valor do sinalizador sao_type_idx é igual a 1, 2, 3 ou 4, a classificação de deslocamento de borda é usada para filtrar a LCU atual e se o valor do sinalizador sao_type_idx é igual a 5, o deslocamento de banda SAO é usado para filtrar a LCU atual.
[0200] De acordo com as modalidades da invenção como descrito acima, tais sinalizadores sao_type_idx podem ser compartilhados entre dois ou três componentes.
[0201] Em uma modalidade particular, os componentes podem compartilhar somente alguns valores do sinalizador denotado sao_type_idx. Em outras palavras, um segundo componente compartilha o valor do sinalizador denotado sao_type_idx de um primeiro componente somente se esse valor pertence a um conjunto predeterminado de valores. Então, de acordo com essa modalidade, o valor do sinalizador denotado sao_type_idx é condicionalmente compartilhado.
[0202] Com a finalidade de ilustração, pode-se assumir que o valor do sinalizador denotado sao_type_idx associado com o componente Y é compartilhado, para uma dada LCU, com o componente U. Entretanto, pode ser possível que, se esse valor indica uma classificação SAO de tipo de deslocamento de borda (isto é, sao_type_idx = 1, 2, 3 ou 4), a direção do deslocamento de borda seja, no entanto, obtida a partir de uma parte de fluxo de bits associada com o componente U ao invés de usar a direção da classificação de deslocamento de borda como dado pelo componente Y. Se o valor do sinalizador denotado sao_type_idx, associado com o componente Y, não é igual a um deslocamento de borda (sao_type_idx = 0 ou 5), nenhuma informação de direção é extraída do fluxo de bits. Em outras palavras, se o tipo SAO para o componente Y é zero ou cinco, esse parâmetro SAO (com relação ao tipo) será usado por componentes U e V. Entretanto, se o tipo SAO é do tipo de deslocamento de borda (isto é, o valor de um a quatro) para o componente Y, tipos SAO dedicado serão usados para os componentes U e V.
[0203] Como descrito acima, os parâmetros SAO (associados com o filtro de laço SAO usando classificação de pixel do tipo de deslocamento de borda) compreendem quatro deslocamentos que estão relacionados às quatro classes, das cinco classes possíveis. A primeira classe (classe “0”) corresponde a não filtragem SAO. Lembra-se aqui que a direção da classificação de deslocamento de borda é sinalizada no tipo SAO.
[0204] De acordo com as modalidades da invenção, esses quatro deslocamentos podem ser compartilhados entre dois ou três componentes quando um filtro de deslocamento de borda é selecionado para a LCU atual, independentemente da direção da classificação de deslocamento de borda.
[0205] De acordo com uma primeira modalidade particular, os mesmos deslocamentos são usados para dois ou três componentes. Consequentemente, somente quatro deslocamentos precisam ser extraídos de um fluxo de bits ao invés de oito a doze, se respectivamente dois ou três componentes compartilham os mesmos quatro deslocamentos, para filtrar pixels com três componentes.
[0206] Naturalmente, tais deslocamentos comuns têm que ser calculados no lado do codificador para permitir o processamento de dois ou três componentes com os mesmos deslocamentos. Como descrito abaixo, essa escolha de codificação é a mesma da usada para a filtragem de deslocamento de banda.
[0207] Em outra modalidade particular, os deslocamentos Ozj associados com o componente Z são derivados de deslocamentos Oxj de outro componente X de acordo com um fator de ponderação βj como segue:
Figure img0003
[0208] O fator de ponderação βj pode ser o mesmo seja qual for o valor de j (β = βj) ou não. O valor de β ou os valores de βj podem ser predeterminados e constantes ou podem ser transmitidos em cabeçalhos particulares como o cabeçalho de sequência ou um cabeçalho de fatia, ou até transmitidos LCU por LCU (ou mais geralmente, área de quadro por área de quadro).
[0209] Quando os valores variam de uma LCU para outra, eles podem ser dinamicamente calculados no lado do codificador ou do decodificador.
[0210] Os valores dos fatores de ponderação podem ser calculados de acordo com a seguinte fórmula:
Figure img0004
[0211] onde cf é o valor do componente Z de pixel i de classe j e onde c?nl e cfn2 são os valores do componente Z dos vizinhos de pixel i de classe j como descrito acima, em particular com relação à Tabela 2 do Apêndice.
[0212] Consequentemente, o valor do fator de ponderação βj é a relação entre a diferença média (máxima) do componente Z dos pixels classificados e seus pixels vizinhos e a diferença média (máxima) do componente X dos pixels classificados e seus pixels vizinhos. Outras relações ou fórmulas podem ser usadas para calcular os valores do fator de ponderação βj (ou de β).
[0213] Ainda em outra modalidade particular, o valor dos deslocamentos codificados em um fluxo de bits pode depender dos valores do fator de ponderação βj (ou β), entretanto, eles são determinados. Em tal modalidade, se o valor do fator de ponderação β ou βj é menor do que um, o valor do deslocamento Ozj é codificado no fluxo de bits ao invés do valor do deslocamento Oxj.
[0214] De fato, na fórmula Ozj = βj Oxj, Ozj < Oxj se βj < 1. Como uma consequência, o valor de deslocamento Ozj precisa que menos bits sejam codificados no fluxo de bits do que o valor de Oxj. Assim, o decodificador sabe ou pode determinar os valores do fator de ponderação βj, ele pode decodificar o valor de Ozj a partir do fluxo de bits e determinar o valor de Oxj de acordo com a seguinte fórmula:
Figure img0005
[0215] Ainda em uma modalidade particular, o valor absoluto dos deslocamentos Ozj associados com um segundo componente Z é igual ao valor absoluto dos deslocamentos Ox(5-j) associados com um primeiro componente X. Nota-se aqui que de acordo com essa modalidade particular, somente o valor absoluto é usado uma vez que o sinal do deslocamento para a classe de deslocamento de borda é predeterminado para reduzir os ruídos.
[0216] A Figura 17 ilustra tal modalidade particular de acordo com a qual os valores dos deslocamentos associados com um componente correspondem aos valores espelhados dos deslocamentos associado com um segundo componente. Como ilustrado, o deslocamento para as 4 classes do componente Z é derivado dos deslocamentos do componente X considerando-se a ordem inversa dos deslocamentos. Lembra-se aqui que os sinais aplicados aos deslocamentos são deduzidos a partir da classificação.
[0217] Ainda em outra modalidade particular, os valores espelhados de deslocamentos associados com um primeiro componente usado como deslocamentos associados com um segundo componente podem ser pesados com fatores de ponderação βj. De acordo com essa modalidade particular, o valor absoluto dos deslocamentos Ozj associados com um segundo componente Z é igual ao valor absoluto pesado dos deslocamentos Ox(5-j) associados com um primeiro componente X de acordo com a seguinte fórmula:
Figure img0006
[0218] Como descrito acima, o filtro de deslocamento de banda SAO precisa de dois tipos de parâmetros. O primeiro tipo é direcionado a uma posição (sao_band_position) e o segundo tipo é direcionado para os quatro deslocamentos em relação às quatro classes da banda que é definida a partir da dada posição. De acordo com as modalidades da invenção, os dois tipos de parâmetros associados com os componentes de uma área de quadro podem ser obtidos separadamente a partir dos parâmetros correspondentes associados com os componentes de outra área de quadro já processada. Entretanto, as modalidades que se referem à posição (sao_band_position) e aquelas que se referem aos deslocamentos podem ser facilmente combinadas. Ademais, como descrito anteriormente com relação às modalidades de deslocamento de borda, essas modalidades ou combinações de modalidades que se referem às posições e deslocamentos para filtragem de deslocamento de banda são aplicadas como uma função dos valores de sinalizadores Merge ou da sintaxe SAO para APS, como descrito acima.
[0219] Nota-se que como os parâmetros SAO associados com um componente podem ser usados para processar dois ou três componentes, a seguinte descrição foca no uso de parâmetros SAO associados com um componente para processar dois componentes com o propósito de ilustração.
[0220] A Figura 18 ilustra como os valores de deslocamentos associados com um segundo componente Z podem ser obtidos a partir de valores de deslocamento associados com um primeiro componente X quando aplicando um filtro de laço SAO usando uma classificação de deslocamento de banda.
[0221] A referência 1801 ilustra o uso de parâmetros SAO, em particular, de deslocamentos associados com os componentes para aplicar um filtro de laço SAO usando uma classificação de deslocamento de banda, de acordo com as especificações HEVC. Os deslocamentos associados com cada componente são todos codificados no fluxo de bits usado para transmitir as imagens codificadas. Com a finalidade de ilustração, o fluxo de bits compreende deslocamentos Ox1 a Ox4, genericamente chamados de Oxj, associados com um primeiro componente X e deslocamentos Oz1 a Oz4, genericamente chamados de Ozj, associados com um primeiro componente Z. Como ilustrado pela referência 1801, os deslocamentos Oxj correspondem a uma primeira banda compreendendo quatro classes consecutivas denotadas BO X e deslocamentos Ozj correspondem a uma segunda banda, também compreendendo quatro classes consecutivas, denotadas BO Z.
[0222] A referência 1802 mostra uma primeira modalidade particular onde os deslocamentos Ozj são iguais aos deslocamentos Oxj. Então, os deslocamentos Ozj não são codificados no fluxo de bits. Eles podem ser recuperados usando correspondentes sinalizadores Merge como descrito acima com relação à filtragem de deslocamento de borda. Similarmente, um fator de ponderação β ou βj pode ser usado de modo que os deslocamentos Ozj podem ser determinados como uma função de deslocamentos Oxj (Ozj = βj Oxj). Novamente, o valor ou valores do fator de ponderação β ou βj podem ser predeterminados ou representados em diferentes níveis no fluxo de bits (em nível de sequência, nível de quadro, nível de fatia, ou nível de LCU). Nesse contexto, o valor ou valores do fator de ponderação β ou βj podem ser negativos (para deslocamento de borda, o sinal dos deslocamentos é determinado como uma função da classe). Em particular, o fator de ponderação pode ser igual a menos um (β = -1).
[0223] Em ainda outra modalidade particular, o valor ou valores do fator de ponderação β ou βj podem ser determinados dinamicamente. Com a finalidade de ilustração, o valor ou valores do fator de ponderação β ou βj podem ser determinados como uma função da posição da banda (sao_band_position). Por exemplo, se a classe j da banda Z e a classe j da banda X não estão nos mesmos subintervalos em vista do centro do intervalo (representado em linha grossa na Figura 18), β = -1, ao contrário β = 1. Considera-se aqui que o intervalo total seja dividido em dois subintervalos, o primeiro sendo o intervalo de valores de pixels de 0 a 127 e o segundo sendo o intervalo de valores de pixel de 128 a 256 (quando a profundidade de 8 pixels é usada para o valor de pixel).
[0224] De acordo com outra modalidade, os valores do fator de ponderação βj são determinados como uma função da relação entre a distância da classe atual do componente Z (ou o conjunto de classes para o valor do fator de ponderação β) até o centro do intervalo e a distância entre a classe atual do componente X (ou o conjunto de classes para o valor do fator de ponderação β) até o centro do intervalo, que pode ser expressa como:
Figure img0007
[0225] onde sao_band_position_Zj - 16 é a distância entre o componente atual Z e o centro do intervalo e sao_band_position_Xj - 16 é a distância entre o componente atual X e o centro do intervalo. Em outra modalidade, a relação inversa poderia ser considerada. Como para o deslocamento de borda, outras relações e fórmulas podem ser usadas para determinar o valor ou valores do fator de ponderação β ou βj. Ademais, como descrito acima, os deslocamentos Oxj ou deslocamentos Ozj podem ser inseridos no fluxo de bits dependendo do valor ou valores do fator de ponderação β ou βj (entretanto, eles são determinados) de modo a reduzir o número de bits necessários para codificar os deslocamentos Oxj ou deslocamentos Ozj.
[0226] A referência 1803 ilustra como os valores espelhados de deslocamentos associados com um primeiro componente podem ser usados como valores de deslocamentos associados com um segundo componente para a filtragem de deslocamento de banda. Como descrito acima com relação à filtragem de deslocamento de borda, as relações entre os deslocamentos Ozj e Oxj podem ser expressas pela seguinte fórmula:
Figure img0008
[0227] Novamente, essa modalidade particular pode ser combinada com o uso do fator de ponderação de acordo com a fórmula Ozj = βj Ox(5-j). Em uma modalidade particular, βj é igual a -1.
[0228] Uma derivação específica dos deslocamentos para a filtragem de deslocamento de banda é o aumento ou diminuição do tamanho das classes habilitando a modificação da classificação de deslocamento de banda de pixel. A referência 1604 ilustra um exemplo de tal adaptação de classificação. De acordo com o exemplo ilustrado, o número de pixels por classe é dividido por dois para o componente Z comparado com a classificação de banda para o componente X. Então, a classificação de pixel para o componente Z, de acordo com a filtragem de deslocamento de banda, exige a verificação de seis bits. Em outras palavras, os seis bits mais significativos têm que ser verificados para classificar um pixel. Então, pode- se considerar que o intervalo de valor de pixel total é dividido em 64 faixas para o componente Z.
[0229] Essa relação pode ser fixa para a implementação ou pode ser sinalizada no nível de sequência, quadro, fatia ou LCU. Pode ser determinado dinamicamente levando em conta a relação do tamanho de faixa de pixel para o componente X e o tamanho de faixa de pixel para o componente Z no nível de LCU (ou sequência, quadro, ou fatia). Consequentemente, o tamanho das classes para o componente Z pode ser determinado como segue:
Figure img0009
[0230] para todos os i = 0 a N, onde Pzi são os pixels do componente Z e Pxi são os pixels do componente X. Para simplificar a classificação de banda, o número de valores de pixel por classe é igual a uma potência de dois (permitindo a verificação de bits dos bits mais significativos).
[0231] Essa modalidade pode ser combinada com todas as outras modalidades particulares descritas para a derivação de deslocamentos do deslocamento de banda como ilustrado pela referência 1805, onde nesta modalidade, é combinada com o uso de deslocamentos de valores espelhados associado com o componente X.
[0232] Em outra modalidade particular que é aplicável tanto a filtragem do tipo de borda e de banda SAO, os deslocamentos a partir de um componente podem ser derivados de dois ou três componentes.
[0233] Todas as modalidades descritas aplicáveis tanto à filtragem do tipo de borda quanto à filtragem do tipo de banda SAO, que se referem ao uso de deslocamentos a partir de um componente para determinar (ou derivar) os deslocamentos para um ou dois outros componentes, apresentam vantagens, em particular, com relação ao uso do armazenador temporário de memória solicitado quando tal derivação é sistematicamente usada (para todas as LCUs), uma vez que os deslocamentos do segundo componente e/ou do terceiro componente não precisam ser armazenados.
[0234] Em outra modalidade particular (tanto para filtragem do tipo de borda quanto filtragem do tipo de banda SAO), a derivação de deslocamentos entre os componentes pode ser usada para prever os deslocamentos a partir de um segundo componente de acordo com os deslocamentos a partir de um primeiro componente. (A descrição é dedicada a compartilhar os deslocamentos entre os componentes). Nesta modalidade, os residuais dos deslocamentos do componente Z são codificados no fluxo de bits ao invés de codificar diretamente o valor dos deslocamentos do componente Z. No lado do decodificador, os deslocamentos do componente Z são obtidos através da adição de deslocamentos residuais aos deslocamentos do componente X.
[0235] Em outra modalidade particular aplicável tanto à filtragem de deslocamento de borda e de banda SAO, a derivação de deslocamentos entre os componentes pode ser usada como um contexto para a codificação aritmética de contexto dos deslocamentos associados com um segundo componente de acordo com os deslocamentos associados com um primeiro componente.
[0236] Ainda em outra modalidade particular aplicável tanto à filtragem de deslocamento de borda e de banda SAO, a derivação de deslocamentos entre os dois componentes pode ser sinalizada no fluxo de bits e pode estar em competição com o modo convencional, onde os deslocamentos são codificados no fluxo de bits para todos os componentes.
[0237] Como descrito acima, uma posição de banda (sao_band_position) é a posição da primeira classe de uma banda nos intervalos de valor de pixel totais. Considerando-se uma verificação de cinco bits padrão, o valor do parâmetro sao_band_position pertence à faixa [0; 32]. De acordo com as modalidades da invenção, esse parâmetro pode ser compartilhado entre dois ou três componentes. Com a finalidade de ilustração, a descrição foca na derivação desse parâmetro com relação a um componente Z a partir de seu valor associado com um componente X.
[0238] A Figura 19 ilustra como um valor do parâmetro sao_band_position associado com um segundo componente Z pode ser obtido a partir do valor do parâmetro sao_band_position associado com um primeiro componente X quando aplicando um filtro de laço SAO usando uma classificação de deslocamento de banda.
[0239] A referência 1901 ilustra um exemplo de dois valores sao_band_position que são transmitidos no fluxo de bits de acordo com as especificações HEVC atuais.
[0240] Em uma modalidade particular ilustrada pela referência 1902, um valor sao_band_position comum é usado tanto para o componente Z quanto para o componente X.
[0241] Em modalidades particulares, a posição central de uma banda é comparada ao centro do intervalo de pixel total. O valor resultante é igual a sao- _band_position —14 (14 correspondendo ao centro do intervalo (16) menos o centro da banda (-2)).
[0242] Consequentemente, em uma modalidade particular ilustrada pela referência 1903, sao_band_position_Z associado com o componente Z é definido como sendo simétrico ao sao_band_position_X associado com o componente X com relação ao centro do intervalo de pixels total. Então, (sao_band_position_Z - 14) é considerado igual a -(sao_band_position_X - 14). Como sao_band_position_X é igual a seis neste exemplo, sao_band_position_Z é assim igual a vinte e dois (-(6 - 14) + 14 = 22).
[0243] Ainda em uma modalidade particular ilustrada pela referência 1904, um fator de ponderação β é usado para determinar o valor sao_band_position_Z associado com o componente Z como uma função do valor sao_band_position_X associado com o componente X e da posição do centro do intervalo de pixel total. Isso é baseado, como na modalidade anterior, na posição relativa entre o centro do intervalo de pixel total e o valor sao_band_position de cada componente X e Z. De acordo com este exemplo, a relação a ser usada pode ser a seguinte:
[0244] sao_band_position_Z - 14 = β (sao_band_position_X - 14)
[0245] Isto é,
[0246] sao_band_position_Z = β (sao_band_position_X - 14) + 14
[0247] No exemplo dado na Figura 19, β = -1/2. Nesse caso, sao_band_position_X é igual a 6 e consequentemente sao_band_position_Z é igual a dezoito (-1/2(6 - 14) + 14 = 18).
[0248] O valor do fator de ponderação β pode ser predeterminado para a implementação ou transmitido em qualquer nível (sequência, quadro, fatia ou LCU).
[0249] Ainda em outra modalidade particular aplicável tanto à filtragem do tipo de borda e de banda SAO, a derivação do parâmetro sao_band_position entre dois componentes pode ser sinalizada no fluxo de bits e pode estar em competição com o modo convencional no qual o valor de parâmetro sao_band_position é codificado no fluxo de bits para todos os componentes.
[0250] A seleção de codificação de parâmetros SAO quando os parâmetros SAO são compartilhados entre dois ou três componentes de cor preferencialmente refere- se à eficiência de codificação. Em outras palavras, a seleção dos parâmetros SAO compartilhados leva em conta vantajosamente a eficiência de codificação desses parâmetros e valores associados. Lembra-se aqui que a seleção do melhor deslocamento em termos do custo de distorção de taxa é o mesmo tanto para a filtragem de deslocamento de borda quanto de banda.
[0251] As seleções de codificação de deslocamentos quando esses deslocamentos são compartilhados entre dois componentes Z e X, mesmo que o tipo SAO (borda ou banda) usado seja descrito aqui abaixo, antes da seleção de centro de banda.
[0252] Como descrito com relação à Figura 3 ilustrando o processo de codificação para determinar um deslocamento ótimo em termos de distorção para um componente, os valores SumXj e SumNbPixXj relacionados ao componente X e os valores SumZj e SumNbPixZj relacionados ao componente Z são conhecidos para todas as classes j. SumXj e SumZj são as somas das diferenças entre os valores de pixel na classe j e seus valores originais para os respectivos componentes X e Z. SumNbPixXj e SumNbPixZj são o número de pixels na classe j para os respectivos componentes X e Z. Assume-se que os valores desses quatro parâmetros já foram calculados para todas as classes.
[0253] Na modalidade particular de acordo com a qual um objetivo é obter Ozj = Oxj, o deslocamento ótimo Ooptj pode ser determinado pela seguinte fórmula:
Figure img0010
[0254] Em seguida, como descrito acima para o processamento de cada componente independentemente, o codificador determina o melhor deslocamento Oxj em termos de critério de distorção de taxa.
[0255] Isso consiste, com a modalidade particular de acordo com a qual Ozj = Oxj, em minimizar o custo de distorção de taxa como segue:
Figure img0011
[0256] Que pode ser simplificada de acordo com a seguinte expressão:
Figure img0012
[0257] Na modalidade particular de acordo com a qual os valores espelhados são direcionados para determinar os deslocamentos (Ozj = -Ox(5-j)) para o caso de deslocamento de borda, o deslocamento ótimo pode ser definido pela seguinte fórmula:
Figure img0013
[0258] Em seguida, o codificador determinar o melhor deslocamento Oxj em termos do critério de distorção de taxa. Isso consiste, de acordo com a modalidade particular de acordo com a qual Oz(5-j) = -Oxj, em minimizar o custo de distorção de taxa como segue:
Figure img0014
[0259] ou
Figure img0015
[0260] Na modalidade particular de acordo com a qual Ozj = - Oxj, o deslocamento ótimo Ooptj é determinado pela seguinte fórmula:
Figure img0016
[0261] Em seguida, o codificador determinar o melhor deslocamento Oxj em termos do critério de distorção de taxa. Isso consiste, de acordo com a modalidade particular de acordo com a qual Ozj = -Oxj, em minimizar o custo de distorção de taxa como segue:
Figure img0017
[0262] Que pode ser simplificada pela seguinte expressão:
Figure img0018
[0263] Na modalidade particular de acordo com a qual Ozj = βj Oxj, o codificador determina independentemente um valor OoptXj ótimo para o componente X e um valor OoptZj ótimo para o componente Z. Em seguida, o codificador determinar o melhor deslocamento Oxj em termos do critério de distorção de taxa. Isso consiste, de acordo com a modalidade particular Ozj = βj Oxj, em minimizar o custo de distorção de taxa como descrito com relação à Figura 4.
[0264] A Figura 20 é um fluxograma que ilustra as etapas de um método para determinar um deslocamento ótimo a ser usado por dois ou três componentes de acordo com um critério de distorção de taxa. O processo ilustrado na Figura 20 é baseado no processo descrito com relação à Figura 4. As etapas 2001, 2004, 2005 e 2006 são similares às etapas 401, 404, 405 e 406, respectivamente.
[0265] A etapa 2002 difere da etapa 402 pelo fato de que o laço iniciado na etapa 2002 torne o deslocamento Oxj variando de sign(OoptXj) x max(f x OoptXj, OoptZj) a zero, onde f é igual a 1/βj, se βj < 1 e igual a βj ao contrário.
[0266] Na modalidade generalizada na qual Ozj = βj Oxj, o critério de distorção de taxa é calculado de acordo com a seguinte fórmula:
Figure img0019
[0267] Que pode ser também escrita como segue:
Figure img0020
[0268] Na etapa 2003, o caso particular onde βj = -1 é considerado com a finalidade de ilustração.
[0269] A seleção de um valor sao_band_position compartilhado entre dois componentes X e Z pode ser determinada de acordo com as seguintes relações:sao_band_position_Z = β (sao_band_position_X - 14) + 14
[0270] A Figura 21 é um fluxograma que ilustra as etapas de um método para determinar uma posição de banda SAO compartilhada entre os dois componentes. Ele é baseado no processo descrito com relação à Figura 5. O processo ilustrado na Figura 21 tem como objetivo determinar o valor de sao_band_position_Z associado com o componente Z a partir do valor de sao_band_position_X associado com o componente X.
[0271] A principal diferença entre o processo ilustrado na Figura 21 e o ilustrado na Figura 5 refere-se ao módulo 2105 onde ambos os valores de distorção de taxa de classes associadas com o componente Z e as classes associadas com o componente X são adicionados juntos de acordo com a seguinte fórmula:
Figure img0021
[0272] Onde JZj é o valor de distorção de taxa para a classe j do componente Z e JXjx é o valor de distorção de taxa para a classe j do componente X. Ademais, para selecionar conjuntamente sao_band_position_Z com sao_band_position_X, o índice jx é derivado de acordo com a seguinte fórmula:sao_band_position_Z = β (sao_band_position_X - 14) + 14
[0273] Consequentemente, jx é igual a β(j - 14) + 14.
[0274] De acordo com uma segunda modalidade principal que evita a classificação de componente de modo a reduzir a complexidade da decodificação, os pixels em uma classe SAO são determinados como uma função de um único componente. As posições dos pixels são então usadas para determinar o componente ou componentes que precisam ser filtrados. Consequentemente, se um componente de pixel é filtrado de acordo com esse componente, outro componente ou os outros dois componentes desse pixel são filtrados.
[0275] A Figura 22 é um fluxograma que ilustra as etapas de um método para decodificar um fluxo de bits de acordo com uma modalidade particular da invenção. O processo ilustrado nessa figura é baseado no ilustrado na Figura 6. Ele tem como objetivo usar a classificação do componente X para filtrar o componente Z.
[0276] Uma etapa inicial 2201 consiste em determinar os parâmetros SAO de acordo com os processos descritos com relação às Figuras 12, 13 e 14. Entretanto, de acordo com o algoritmo ilustrado na Figura 22, somente o valor do parâmetro sao_type_idx e, se ele é igual a cinco, o valor do parâmetro sao_band_position para o componente X são determinados na etapa 2202 a partir do fluxo de bits (não representado). De fato, esses parâmetros relacionados à classificação, eles não são necessários para classificar o componente Z que é filtrado de acordo com a classificação do componente X.
[0277] Em seguida, na etapa 2203, os quatro deslocamentos associados com o componente X são obtidos a partir do fluxo de bits. Similarmente, os quatro deslocamentos associados com o componente Z são obtidos a partir do fluxo de bits na etapa 2204. Nota-se que esses deslocamentos podem ser determinados como uma função de outros deslocamentos associados com outros componentes e/ou com outra LCU como descrito acima.
[0278] Na etapa 2205, a contra variável i é configurada com o valor zero. Em seguida, o primeiro pixel Pxi da área de quadro do componente X (referência 2206), compreendendo N pixels, é extraído na etapa 2207. Similarmente, o primeiro pixel Pzi da área de quadro do componente Z (referência 2208) é extraído na etapa 2209. Com a finalidade de ilustração, admite-se aqui que a área de quadro do componente Z contém também N pixels (componentes X e Z têm a mesma quantidade de pixels por área de quadro).
[0279] Em seguida, na etapa 2210, o componente X do primeiro pixel Pxi é classificado de acordo com a classificação de deslocamento de borda ou classificação de deslocamento de banda graças ao valor do parâmetro sao_type_idx_X (e se necessário, o valor do parâmetro sao_band_position_X) como descrito anteriormente com relação à Tabela 2 do Apêndice e da Figura 2, respectivamente.
[0280] Na etapa 2211, um teste é executado para determinar se ou não o componente X do pixel Pxi é filtrado (isto é, se Pxi pertence a uma classe SAO). Se Pxi pertence a uma classe SAO, o número da classe relacionada j é identificado e o valor de deslocamento correspondente é obtido na etapa 2212 a partir da tabela de deslocamentos associada com o componente X. Em seguida, na etapa 2213, o componente X do pixel Pxi é filtrado através da adição do deslocamento obtido a esse valor. O componente filtrado X do pixel Pxi é chamado de P’xi (referência 2214). Simultânea ou sequencialmente, o valor de deslocamento associado com o componente Z e correspondente ao número de classe j é obtido na etapa 2215 a partir da tabela de deslocamentos associada com o componente Z. Em seguida, na etapa 2216, o componente Z do pixel Pzi é filtrado através da adição do deslocamento obtido a seu valor. O componente filtrado Z do pixel Pzi é chamado de P’zi (referência 2217).
[0281] Em seguida, na etapa 2218, os componentes filtrados P’xi e P’zj são colocados no componente X e no componente Z da área de quadro filtrada, chamados de 2219 e 2220, respectivamente. Na etapa 2218, os pixels filtrados P’xi e P’zj substituem respectivamente os pixels Pxi e Pzj dos quadros processados chamados de 2219 e 2220.
[0282] Se Pxi não pertence a uma classe SAO, os componentes Pxi e Pzj no componente X e no componente Z das áreas de quadro filtradas permanecem inalterados nas etapas 2221, 2222 e 2218.
[0283] Em seguida, na etapa 2223, a contra variável i é aumentada por um de modo a aplicar o processo de filtragem similarmente aos próximos pixels da área de quadro atual.
[0284] Na etapa 2224, é determinado se ou não todos os N pixels da área de quadro atual foram processados (i > N). Se sim, os componentes filtrados X e Z da área de quadro são reconstruídos e podem ser adicionados ao quadro reconstruído SAO.
[0285] A Figura 22 ilustra o uso da classificação SAO de um componente X para filtrar similarmente outro componente Z quando ambos os componentes têm o mesmo número de pixels para a área de quadro atual.
[0286] Entretanto, os componentes de uma área de quadro nem sempre têm o mesmo número de pixels. Dependendo do número relativo de pixels para o componente X, denotado Nx com relação ao número de pixels para o componente Z, denotado Nz, dois casos podem ser considerados. Como a diferença entre os números de pixels de dois componentes diferentes em uma área de quadro é tipicamente um múltiplo de dois, não é necessário levar em conta relações não inteiras entre os números de componentes de pixel.
[0287] Considerando-se o caso de acordo com o qual o número de pixels do componente Z é maior do que o número de pixels do componente X (Nx < Nz), o algoritmo descrito com relação à Figura 22 pode ser facilmente adaptado considerando-se que Pzi é um grupo de Nz/Nx pixels. Consequentemente, quando um deslocamento OffsetZi é adicionado a um grupo de pixels Pzi, esse deslocamento é aplicado a todos os pixels do grupo de pixels Pzi. Ademais, em uma modalidade particular, pode-se considerar que o deslocamento OffsetZi é um grupo de deslocamentos do mesmo tamanho do grupo de pixels Pzi.
[0288] Considerando-se o caso de acordo com o qual o número de pixels do componente X é maior do que o número de pixels do componente Z (Nx > Nz), várias modalidades podem ser consideradas. Em tal caso, as etapas 2216 e 2218 descritas com relação à Figura 22 precisam levar em conta a relação entre o número de pixels do componente X e o número de pixels do componente Z. Na Figura 22, Pzi é alterado por Pz(i/Nx).
[0289] Em uma primeira modalidade particular, o deslocamento OffsetZi é adicionado ao grupo Pz(i/Nx) somente se Pxi foi filtrado pelo menos uma vez.
[0290] De acordo com outra modalidade particular, a etapa 2218 da Figura 22 leva em conta o número de vezes que Pxi foi filtrado. Se ele é maior do que 2xNx/Nz, então OffsetZi é adicionado a Pz(i/Nx(.
[0291] Ainda de acordo com uma modalidade particular, a etapa 2218 recebe Nx/Nz vezes, Pz(i/Nx) ou P’z(i/Nx) e calcula a média de modo a produzir o valor de pixel colocado na área de quadro filtrada para o componente Z (2220).
[0292] A Figura 23 ilustra o uso da classificação SAO de um componente X para similarmente filtrar outro componente Z.
[0293] Com a finalidade de ilustração, os pixels em cinza do bloco 2301 representam pixels filtrados para um filtro de laço SAO do tipo i da classe atual j para o componente X de acordo com a implementação HEVC atual. Similarmente, os pixels em preto do bloco 2302 representam os pixels filtrados para um filtro de laço SAO do tipo i da classe atual j para o componente Z de acordo com as especificações HEVC atuais.
[0294] Então, como ilustrado na Figura 23, os pixels em cinza no componente X e os pixels em preto no componente Z nem sempre estão na mesma posição considerando as especificações HEVC atuais.
[0295] Ainda com a finalidade de ilustração, os pixels em cinza do bloco 2303 representam pixels filtrados para um filtro de laço SAO do tipo i da classe atual j para o componente X de acordo com a implementação HEVC atual. Entretanto, os pixels em preto do bloco 2304 representam pixels filtrados para um filtro de laço SAO para o componente Z de acordo com a classificação do componente X (bloco 2303). Consequentemente, os pixels em cinza e os pixels em preto estão localizados nas mesmas posições. Isso resulta do uso de somente uma classificação para ambos os componentes.
[0296] Nota-se que ambas as modalidades principais podem ser combinadas para otimizar a eficiência da codificação e a complexidade da decodificação.
[0297] Embora a presente invenção tenha sido descrita acima com relação às modalidades específicas, a presente invenção não está limitada às modalidades específicas, e modificações estarão claras para os versados na técnica, as quais estão dentro do escopo da presente invenção. Em particular, enquanto a descrição anterior refere-se aos componentes YUV, com a finalidade de ilustração, outros esquemas como RGB (componentes Vermelho, Verde e Azul) podem ser usados.
[0298] Por exemplo, enquanto as modalidades anteriores foram descritas em relação a pixels de uma imagem e seus valores de pixel correspondentes, estará claro que, dentro do contexto da invenção, um grupo de pixels pode ser considerado junto com um correspondente valor de pixel de grupo. Uma amostra pode assim corresponder a um ou mais pixels de uma imagem.
[0299] Aspectos adicionas da presente invenção são apresentados abaixo.
[0300] De acordo com um primeiro aspecto adicional da invenção, é fornecido um método para codificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de filtragem, o método compreendendo:
[0301] codificar um primeiro e um segundo componente de pelo menos uma amostra da imagem para fornecer pelo menos uma amostra codificada;
[0302] decodificar pelo menos uma amostra codificada;
[0303] calcular pelo menos um parâmetro de filtragem como uma função da diferença entre pelo menos um componente de pelo menos uma amostra da imagem e pelo menos um componente correspondente de pelo menos uma amostra decodificada correspondente, pelo menos um parâmetro de filtragem sendo calculado para ser usado em um filtro de laço para filtrar independentemente pelo menos um primeiro e um segundo componente de uma amostra decodificada.
[0304] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência da codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e para reduzir a complexidade da classificação.
[0305] Em uma modalidade, pelo menos um parâmetro de filtragem é determinado como uma função de uma pluralidade de parâmetros de filtragem estimados de modo que a eficiência de codificação de pelo menos um parâmetro de filtragem é ótima.
[0306] Em uma modalidade, pelo menos um parâmetro de filtragem é determinado como uma função das diferenças entre pelo menos um componente de amostras de uma parte da imagem e pelo menos um componente correspondente das amostras decodificadas correspondentes, do número de amostras de pelo menos um componente na parte da imagem, e dos valores de dois componentes das amostras da parte da imagem.
[0307] Em uma modalidade, pelo menos um parâmetro de filtragem é determinado como uma função de um primeiro parâmetro de filtragem calculado como uma função da diferença entre um primeiro componente de pelo menos uma amostra da imagem e o primeiro componente correspondente de pelo menos uma amostra decodificada correspondente e de um segundo parâmetro de filtragem calculado como uma função da diferença entre um segundo componente de pelo menos uma amostra da imagem e o segundo componente correspondente de pelo menos uma amostra decodificada correspondente.
[0308] Em uma modalidade, o primeiro e o segundo parâmetro de filtragem são calculados como uma função de uma pluralidade de amostras de uma parte da imagem.
[0309] Em uma modalidade, pelo menos um parâmetro de filtragem compreende pelo menos um deslocamento a ser adicionados a um componente da amostra a ser filtrado.
[0310] Em uma modalidade, pelo menos um parâmetro de filtragem compreende ainda pelo menos um fator de ponderação para pesar pelo menos um deslocamento.
[0311] Em uma modalidade, pelo menos um parâmetro de filtragem compreende ainda pelo menos uma posição de uma banda que define pelo menos uma classe de componentes de amostra a serem filtrados.
[0312] Em uma modalidade, o método compreende ainda uma etapa de determinar pelo menos uma posição como uma função de diferentes valores de distorção de taxa estimados para diferentes componentes.
[0313] Ainda em uma modalidade, pelo menos um parâmero de ponderação compreende ainda pelo menos um sinalizador associado com pelo menos um primeiro componente de uma primeira amostra, pelo menos um sinalizador sendo indicativo de uma referência a pelo menos um parâmetro de ponderação associado com pelo menos um segundo componente de uma segunda amostra, para filtrar pelo menos um primeiro componente.
[0314] Em uma modalidade, pelo menos um parâmetro de ponderação compreende ainda pelo menos um sinalizador associado com pelo menos um primeiro componente de uma primeira amostra, pelo menos um sinalizador indicativo de uma referência a pelo menos um parâmetro de ponderação associado com pelo menos um segundo componente de uma segunda amostra, para filtrar uma pluralidade de componentes da primeira amostra.
[0315] De acordo com um segundo aspecto adicional da invenção, é fornecido um método para decodificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de ponderação, o método compreende:
[0316] decodificar um primeiro e um segundo componente de pelo menos uma amostra codificada para fornecer um primeiro e um segundo componente de pelo menos uma amostra reconstruída;
[0317] decodificar pelo menos um parâmetro de filtragem;
[0318] filtrar pelo menos uma amostra reconstruída em um filtro de laço, a filtragem do primeiro componente e do segundo componente de pelo menos uma amostra reconstruída sendo baseada em pelo menos um parâmetro de filtragem comum de pelo menos um parâmetro de filtragem decodificado.
[0319] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência de codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e para reduzir a complexidade da classificação.
[0320] Em uma modalidade, o método compreende ainda uma etapa de obter pelo menos um sinalizador indicativo de uma referência a pelo menos um parâmetro de filtragem.
[0321] Em uma modalidade, o método compreende ainda uma etapa de analisar pelo menos um sinalizador obtido e, em resposta à análise, obter pelo menos um parâmetro de filtragem comum.
[0322] Em ainda uma modalidade, o método compreende ainda uma etapa de obter pelo menos outro sinalizador indicativo de uma referência a pelo menos um parâmetro de filtragem e uma etapa de analisar pelo menos um outro sinalizador obtido, a etapa de obter pelo menos um sinalizador sendo executada em resposta à etapa de analisar pelo menos um sinalizador obtido.
[0323] Em uma modalidade, o método compreende ainda uma etapa de calcular um parâmetro de filtragem a ser usado para filtrar pelo menos o primeiro componente de pelo menos uma amostra reconstruída como uma função de pelo menos um parâmetro de filtragem decodificado.
[0324] Em uma modalidade, o método compreende ainda uma etapa de calcular um parâmetro de filtragem a ser usado para filtrar o primeiro e o segundo componente de pelo menos uma amostra reconstruída como uma função de pelo menos um parâmetro de filtragem decodificado.
[0325] Em ainda uma modalidade, o método compreende ainda uma etapa de obter pelo menos um fator de ponderação, o parâmetro de filtragem calculado sendo baseado em pelo menos um fator de ponderação obtido.
[0326] Em uma modalidade, o método compreende ainda uma etapa de decodificar pelo menos um fator de ponderação, pelo menos um fator de ponderação sendo recebido junto com a parte da imagem a ser decodificada.
[0327] Em uma modalidade, o parâmetro de filtragem comum compreende pelo menos um valor de deslocamento a ser adicionado a pelo menos o primeiro componente de pelo menos uma amostra reconstruída.
[0328] Em uma modalidade, o parâmetro de filtragem comum compreende pelo menos uma posição de uma banda que define pelo menos uma classe de componentes de amostra a serem filtrados.
[0329] Em ainda uma modalidade, o método compreende ainda uma etapa de obter pelo menos um fator de ponderação a ser aplicado em pelo menos uma posição da banda para filtrar pelo menos o primeiro componente de pelo menos uma amostra reconstruída.
[0330] De acordo com um terceiro aspecto adicional da invenção, é fornecido um método para codificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de filtragem, o método compreende:
[0331] codificar um primeiro e um segundo componente de pelo menos uma amostra da imagem para fornecer pelo menos uma amostra codificada;
[0332] decodificar pelo menos uma amostra codificada;
[0333] calcular pelo menos um parâmetro de filtragem como uma função da diferença entre um componente de pelo menos uma amostra da imagem e o componente correspondente de pelo menos uma amostra decodificada, pelo menos um parâmetro de filtragem sendo calculado para ser usado em um filtro de laço para filtrar independentemente pelo menos um primeiro e um segundo componente de uma amostra decodificada.
[0334] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência da codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e para reduzir a complexidade da classificação.
[0335] De acordo com um quarto aspecto da presente invenção, é fornecido um método para decodificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de filtragem, o método compreende:
[0336] decodificar um primeiro componente de uma primeira amostra codificada e um segundo componente de uma segunda amostra codificada para fornecer um primeiro componente de uma primeira amostra reconstruída e um segundo componente de uma segunda amostra reconstruída;
[0337] decodificar pelo menos um parâmetro de filtragem;
[0338] filtrar amostras reconstruídas em um filtro de laço, a filtragem do primeiro componente da primeira amostra reconstruída e do segundo componente da segunda amostra reconstruída sendo baseada em pelo menos um parâmetro de filtragem comum de pelo menos um parâmetro de filtragem decodificado.
[0339] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência da codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e para reduzir a complexidade da classificação.
[0340] Em uma modalidade, o método compreende ainda uma etapa de calcular um parâmetro de filtragem a ser usado para filtrar o primeiro componente de pelo menos uma amostra reconstruída como uma função de um parâmetro de filtragem a ser usado para filtrar o segundo componente de pelo menos uma amostra reconstruída.
[0341] Em uma modalidade, uma primeira pluralidade de parâmetros de filtragem está associada com o primeiro componente da primeira amostra reconstruída e uma segunda pluralidade de parâmetros de filtragem está associada com o segundo componente da segunda amostra reconstruída, os valores de parâmetro de filtragem da primeira pluralidade de parâmetros de filtragem sendo iguais aos valores de parâmetro de filtragem da segunda pluralidade de parâmetros de filtragem e os valores de parâmetro de filtragem da primeira pluralidade de parâmetros de filtragem estando em ordem inversa à ordem dos valores de parâmetro de filtragem da segunda pluralidade de parâmetros de filtragem.
[0342] Em outra modalidade, uma primeira pluralidade de parâmetros de filtragem está associada com o primeiro componente da primeira amostra reconstruída e uma segunda pluralidade de parâmetros de filtragem está associada com o segundo componente da segunda amostra reconstruída, os valores de parâmetro de filtragem da primeira pluralidade de parâmetros de filtragem sendo iguais aos valores de parâmetro de filtragem da segunda pluralidade de parâmetros de filtragem multiplicados por um fator de ponderação predeterminado.
[0343] De acordo com um quinto aspecto adicional da presente invenção, é fornecido um produto de programa de computador para um aparelho programável, o produto de programa de computador compreende uma sequência de instruções para implementar cada etapa de um método incorporando um dentre o primeiro ao quarto aspecto descritos acima quando carregado em um aparelho programável e executado por ele.
[0344] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência da codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e para reduzir a complexidade da classificação.
[0345] De acordo com um sexto aspecto adicional da presente invenção, é fornecido um meio de armazenamento legível por computador armazenando instruções de um programa de computador para implementar cada etapa de um método incorporando um dentre o primeiro ao quarto aspecto adicional descritos acima.
[0346] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência da codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e para reduzir a complexidade da classificação.
[0347] De acordo com um sétimo aspecto adicional da invenção, é fornecido um dispositivo de codificação para codificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de filtragem, o dispositivo de codificação compreende:
[0348] dispositivo para codificar um primeiro e um segundo componente de pelo menos uma amostra da imagem para fornecer pelo menos uma amostra codificada;
[0349] dispositivo para decodificar pelo menos uma amostra codificada;
[0350] dispositivo para calcular pelo menos um parâmetro de filtragem como uma função da diferença entre pelo menos um componente de pelo menos uma amostra da imagem e pelo menos um componente correspondente de pelo menos uma amostra decodificada correspondente, pelo menos um parâmetro de filtragem sendo calculado para ser usado em um filtro de laço para filtrar independentemente pelo menos um primeiro e um segundo componente de uma amostra decodificada.
[0351] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência da codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e para reduzir a complexidade da classificação.
[0352] Em uma modalidade, o dispositivo compreende ainda dispositivo para codificar sinalizadores, pelo menos um parâmetro de filtragem compreende ainda pelo menos um sinalizador associado com pelo menos um primeiro componente de uma primeira amostra, pelo menos um sinalizador sendo indicativo de uma referência a pelo menos um parâmetro de filtragem associado com pelo menos um segundo componente de uma segunda amostra, para filtrar pelo menos um primeiro componente.
[0353] Em outra modalidade, o dispositivo compreende ainda dispositivo para codificar sinalizadores, pelo menos um parâmetro de filtragem compreendendo ainda pelo menos um sinalizador associado com pelo menos um primeiro componente de uma primeira amostra, pelo menos um sinalizador sendo indicativo de uma referência a pelo menos um parâmetro de filtragem associado com pelo menos um segundo componente de uma segunda amostra, para filtrar uma pluralidade de componentes da primeira amostra.
[0354] De acordo com um oitavo aspecto adicional da invenção, é fornecido um dispositivo de decodificação para decodificar pelo menos parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de filtragem, o dispositivo compreende:
[0355] dispositivo para decodificar um primeiro e um segundo componente de pelo menos uma amostra codificada para fornecer um primeiro e um segundo componente de pelo menos uma amostra reconstruída;
[0356] dispositivo para decodificar pelo menos um parâmetro de filtragem;
[0357] dispositivo para filtrar pelo menos uma amostra reconstruída em um filtro de laço, a filtragem do primeiro componente e do segundo componente de pelo menos uma amostra reconstruída sendo baseada em pelo menos um parâmetro de filtragem comum de pelo menos um parâmetro de filtragem decodificado.
[0358] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência da codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e para reduzir a complexidade da classificação.
[0359] Em uma modalidade, o dispositivo compreende ainda dispositivo para obter pelo menos um sinalizador indicativo de uma referência a pelo menos um parâmetro de filtragem, dispositivo para obter pelo menos outro sinalizador indicativo de uma referência a pelo menos um parâmetro de filtragem, e dispositivo para analisar pelo menos outro sinalizador obtido, o dispositivo para obter pelo menos um sinalizador sendo responsivo ao dispositivo para analisar pelo menos outro sinalizador obtido.
[0360] Em uma modalidade, o dispositivo compreende ainda dispositivo para calcular um parâmetro de filtragem a ser usado para filtrar pelo menos o primeiro componente de pelo menos uma amostra reconstruída como uma função de pelo menos um parâmetro de filtragem decodificado.
[0361] Em ainda outra modalidade, o dispositivo compreende ainda dispositivo para calcular um parâmetro de filtragem a ser usado para filtrar o primeiro e o segundo componente de pelo menos uma amostra reconstruída como uma função de pelo menos um parâmetro de filtragem decodificado.
[0362] De acordo com um nono aspecto adicional da invenção, é fornecido um dispositivo de codificação para codificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de filtragem, o dispositivo compreende:
[0363] dispositivo para codificar um primeiro e um segundo componente de pelo menos uma amostra da imagem para fornecer pelo menos uma amostra codificada;
[0364] dispositivo para decodificar pelo menos uma amostra codificada;
[0365] dispositivo para calcular pelo menos um parâmetro de filtragem como uma função da diferença entre um componente de pelo menos uma amostra da imagem e o componente correspondente de pelo menos uma amostra decodificada, pelo menos um parâmetro de filtragem sendo calculado para ser usado em um filtro de laço para filtrar independentemente pelo menos um primeiro e um segundo componente de uma amostra decodificada.
[0366] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência da codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e para reduzir a complexidade da classificação.
[0367] De acordo com um décimo aspecto adicional da invenção, é fornecido um dispositivo de decodificação para decodificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, a imagem codificada compreendendo pelo menos um parâmetro de filtragem, o dispositivo compreende:
[0368] dispositivo para decodificar um primeiro componente de uma primeira amostra codificada e um segundo componente de uma segunda amostra codificada para fornecer um primeiro componente de uma primeira amostra reconstruída e um segundo componente de uma segunda amostra reconstruída;
[0369] dispositivo para decodificar pelo menos um parâmetro de filtragem;
[0370] dispositivo para filtrar amostras reconstruídas em um filtro de laço, a filtragem do primeiro componente da primeira amostra reconstruída e do segundo componente da segunda amostra reconstruída sendo baseada em pelo menos um parâmetro de filtragem comum de pelo menos um parâmetro de filtragem decodificado.
[0371] Levando-se em conta as interdependências entre os componentes, a invenção torna possível melhorar a eficiência da codificação de SAO, para reduzir o armazenador temporário de memória necessário para armazenar os parâmetros SAO, e para reduzir a complexidade da classificação.
[0372] Em uma modalidade, o dispositivo compreende ainda dispositivo para calcular os parâmetros de filtragem, onde uma primeira pluralidade de parâmetros de filtragem está associada com o primeiro componente da primeira amostra reconstruída e uma segunda pluralidade de parâmetros de filtragem está associada com o segundo componente da segunda amostra reconstruída, os valores do parâmetro de filtragem da primeira pluralidade de parâmetros de filtragem sendo iguais aos valores de parâmetro de filtragem da segunda pluralidade de parâmeros de filtragem e os valores de parâmetro de filtragem da primeira pluralidade de parâmetros de filtragem estando em ordem inversa à ordem dos valores de parâmetro de filtragem da segunda pluralidade dos parâmetros de filtragem.
[0373] Em outra modalidade, o dispositivo compreende ainda dispositivo para calcular os parâmetros de filtragem, onde uma primeira pluralidade de parâmetros de filtragem está associada com o primeiro componente da primeira amostra reconstruída e uma segunda pluralidade de parâmetros de filtragem está associada com o segundo componente da segunda amostra reconstruída, os valores de parâmetro de filtragem da primeira pluralidade de parâmetros de filtragem sendo iguais aos valores de parâmetro de filtragem da segunda pluralidade de parâmetros de filtragem multiplicado por um fator de ponderação predeterminado.
[0374] Muitas modificações e variações adicionais são sugeridas aos versados na técnica mediante a referência às modalidades ilustrativas anteriores, que são dadas por meio de exemplo somente e que não são destinadas a limitar o escopo da invenção, que são determinadas unicamente pelas reivindicações em anexo. Em particular, diferentes características de diferentes modalidades podem ser intercambiadas, quando apropriado.
[0375] Nas reivindicações, a palavra “compreendendo” não exclui outros elementos ou etapas, e o artigo indefinido “um” ou “uma” não exclui uma pluralidade. O mero fato de que diferentes características são citadas em reivindicações diferentes mutuamente dependentes não indica que uma combinação dessas características não pode ser vantajosamente usada.
[0376] Apêndice
[0377] Tabela 1
Figure img0022
[0378] Tabela 2
Figure img0023
Figure img0024

Claims (1)

1. Método para decodificar pelo menos uma parte de uma imagem codifi-cada compreendendo uma pluralidade de amostras, cada amostra compreendendo pelo menos dois componentes, o método compreendendo: decodificar (1103 a 1106) um primeiro componente de croma e um segundo componente de croma de pelo menos uma amostra codificada para fornecer um primeiro componente de croma e um segundo componente de croma de pelo menos uma amostra reconstruída; decodificar pelo menos um parâmetro de filtragem para a imagem codifi-cada; realizar uma filtragem de laço de deslocamento adaptativo de amostra (1107) na pelo menos uma amostra reconstruída, caracterizado pelo fato de que a filtragem compreende usar um primeiro parâmetro de filtragem decodificado como um parâmetro de filtragem comum para realizar filtragem em ambos o primeiro componente de croma e o segundo componente de croma da pelo menos uma amostra reconstruída, e usar um segundo parâmetro de filtragem decodificado como outro parâmetro de filtragem comum para realizar filtragem em ambos o primeiro componente de croma e o segundo componente de croma da pelo menos uma amostra reconstruída; em que o primeiro parâmetro de filtragem decodificado é usado como um parâmetro de filtragem comum condicionalmente de acordo com um tipo de filtragem de laço de deslocamento adaptativo de amostra; e em que o segundo parâmetro de filtragem decodificado é um parâmetro do tipo de deslocamento adaptativo de amostra indicativo de se filtragem de laço de deslocamento adaptativo de amostra do tipo banda ou do tipo borda é usada como o dito tipo de filtragem de laço de deslocamento adaptativo de amostra para a pelo menos uma amostra reconstruída ou se nenhuma filtragem de laço de deslocamento adapta- tivo de amostra é usada para a pelo menos uma amostra reconstruída.
BR122019026459-7A 2011-11-07 2012-11-07 Método para decodificar pelo menos uma parte de uma imagem codificada compreendendo uma pluralidade de amostras BR122019026459B1 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GBGB1119206.9A GB201119206D0 (en) 2011-11-07 2011-11-07 Method and device for providing compensation offsets for a set of reconstructed samples of an image
GB1119206.9 2011-11-07
GB1203285.0A GB2499983A (en) 2011-11-07 2012-02-24 Providing compensation offsets for a set of reconstructed samples of an image
GB1203285.0 2012-02-24
GB1205304.7 2012-03-26
GB1205304.7A GB2496220A (en) 2011-11-07 2012-03-26 Optimising Encoding/Decoding/Computation of Filtering Parameters (e.g. Compensation Offsets) for a Set of Reconstructed Samples of an Image
PCT/EP2012/072071 WO2013068428A2 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image

Publications (1)

Publication Number Publication Date
BR122019026459B1 true BR122019026459B1 (pt) 2022-11-22

Family

ID=45421397

Family Applications (10)

Application Number Title Priority Date Filing Date
BR122019026456-2A BR122019026456B1 (pt) 2011-11-07 2012-11-07 Método para codificar parâmetros relacionados a um processo de filtragem para filtragem por deslocamento adaptativo de amostra
BR112014010885-4A BR112014010885B1 (pt) 2011-11-07 2012-11-07 Método e dispositivo para otimizar a codificação/decodificação de deslocamentos de compensação para um conjunto de amostras reconstruídas de uma imagem e meio de armazenamento legível por computador para implementação de tal método
BR122019028115-7A BR122019028115B1 (pt) 2011-11-07 2012-11-07 Método para decodificar uma imagem composta de uma pluralidade de amostras
BR122019026459-7A BR122019026459B1 (pt) 2011-11-07 2012-11-07 Método para decodificar pelo menos uma parte de uma imagem codificada compreendendo uma pluralidade de amostras
BR112014010882-0A BR112014010882B1 (pt) 2011-11-07 2012-11-07 Método e dispositivo para decodificar uma imagem, sinal, dispositivo e meio de armazenamento
BR122019028117-3A BR122019028117B1 (pt) 2011-11-07 2012-11-07 Método de codificação de informação para aplicar deslocamentos adaptativos de amostra a uma imagem
BR122019026461-9A BR122019026461B1 (pt) 2011-11-07 2012-11-07 Método para decodificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras
BR122019026460-0A BR122019026460B1 (pt) 2011-11-07 2012-11-07 Método para decodificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras
BR122019028116-5A BR122019028116B1 (pt) 2011-11-07 2012-11-07 Método para aplicar deslocamentos adaptativos de amostra a uma imagem
BR122019028118-1A BR122019028118B1 (pt) 2011-11-07 2012-11-07 Método para codificação de informação para executar um processo de deslocamento adaptativo de amostra em dados de imagem constituídos de uma pluralidade de amostras

Family Applications Before (3)

Application Number Title Priority Date Filing Date
BR122019026456-2A BR122019026456B1 (pt) 2011-11-07 2012-11-07 Método para codificar parâmetros relacionados a um processo de filtragem para filtragem por deslocamento adaptativo de amostra
BR112014010885-4A BR112014010885B1 (pt) 2011-11-07 2012-11-07 Método e dispositivo para otimizar a codificação/decodificação de deslocamentos de compensação para um conjunto de amostras reconstruídas de uma imagem e meio de armazenamento legível por computador para implementação de tal método
BR122019028115-7A BR122019028115B1 (pt) 2011-11-07 2012-11-07 Método para decodificar uma imagem composta de uma pluralidade de amostras

Family Applications After (6)

Application Number Title Priority Date Filing Date
BR112014010882-0A BR112014010882B1 (pt) 2011-11-07 2012-11-07 Método e dispositivo para decodificar uma imagem, sinal, dispositivo e meio de armazenamento
BR122019028117-3A BR122019028117B1 (pt) 2011-11-07 2012-11-07 Método de codificação de informação para aplicar deslocamentos adaptativos de amostra a uma imagem
BR122019026461-9A BR122019026461B1 (pt) 2011-11-07 2012-11-07 Método para decodificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras
BR122019026460-0A BR122019026460B1 (pt) 2011-11-07 2012-11-07 Método para decodificar pelo menos uma parte de uma imagem compreendendo uma pluralidade de amostras
BR122019028116-5A BR122019028116B1 (pt) 2011-11-07 2012-11-07 Método para aplicar deslocamentos adaptativos de amostra a uma imagem
BR122019028118-1A BR122019028118B1 (pt) 2011-11-07 2012-11-07 Método para codificação de informação para executar um processo de deslocamento adaptativo de amostra em dados de imagem constituídos de uma pluralidade de amostras

Country Status (14)

Country Link
US (12) US9106931B2 (pt)
EP (11) EP3396957B1 (pt)
JP (10) JP6184416B2 (pt)
KR (12) KR102029614B1 (pt)
CN (15) CN107197270B (pt)
BR (10) BR122019026456B1 (pt)
DK (2) DK2777255T3 (pt)
ES (7) ES2628070T3 (pt)
GB (5) GB201119206D0 (pt)
HU (5) HUE057826T2 (pt)
IN (2) IN2014CN04154A (pt)
PL (5) PL3396957T3 (pt)
RU (13) RU2641230C1 (pt)
WO (3) WO2013068428A2 (pt)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101529992B1 (ko) 2010-04-05 2015-06-18 삼성전자주식회사 픽셀 그룹별 픽셀값 보상을 위한 비디오 부호화 방법과 그 장치, 및 픽셀 그룹별 픽셀값 보상을 위한 비디오 복호화 방법과 그 장치
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
US9277194B2 (en) 2011-11-08 2016-03-01 Texas Instruments Incorporated Method and apparatus for image and video coding using hierarchical sample adaptive band offset
US9253482B2 (en) * 2011-11-08 2016-02-02 Texas Insturments Incorporated Method and apparatus for sample adaptive offset without sign coding
JP5893754B2 (ja) * 2011-12-22 2016-03-23 サムスン エレクトロニクス カンパニー リミテッド 最大符号化単位別ピクセル分類によるオフセット調整を利用するビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
US9161035B2 (en) * 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
GB2509707B (en) 2013-01-04 2016-03-16 Canon Kk A method, device, computer program, and information storage means for encoding or decoding a video sequence
KR102166335B1 (ko) * 2013-04-19 2020-10-15 삼성전자주식회사 Sao 파라미터를 시그널링하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9826240B2 (en) * 2013-07-05 2017-11-21 Texas Instruments Incorporated High throughput VLSI architecture for HEVC SAO encoding
JP6174966B2 (ja) * 2013-10-17 2017-08-02 キヤノン株式会社 画像符号化装置、画像符号化方法、及びプログラム
CN105684409B (zh) 2013-10-25 2019-08-13 微软技术许可有限责任公司 在视频和图像编码和解码中使用散列值来表示各块
US10264290B2 (en) 2013-10-25 2019-04-16 Microsoft Technology Licensing, Llc Hash-based block matching in video and image coding
TWI496456B (zh) * 2013-11-19 2015-08-11 Ind Tech Res Inst 畫面間成本計算方法及畫面間成本計算裝置
CN103647975B (zh) * 2013-12-02 2017-01-11 国家广播电影电视总局广播科学研究院 基于直方图分析的改进样本自适应偏移滤波方法
CN110072106B (zh) * 2013-12-13 2022-06-07 北京三星通信技术研究有限公司 视频编解码中像素处理的方法和装置
US9628822B2 (en) 2014-01-30 2017-04-18 Qualcomm Incorporated Low complexity sample adaptive offset encoding
CN105393537B (zh) 2014-03-04 2019-08-27 微软技术许可有限责任公司 用于基于散列的块匹配的散列表构建和可用性检查
CN105556971B (zh) 2014-03-04 2019-07-30 微软技术许可有限责任公司 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
JP6338408B2 (ja) * 2014-03-14 2018-06-06 三菱電機株式会社 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
KR102298599B1 (ko) 2014-04-29 2021-09-03 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 샘플 적응 오프셋 필터링에 대한 인코더측 결정
CN105323588B (zh) * 2014-06-16 2019-06-21 敦泰电子股份有限公司 一种动态适应压缩参数的影像压缩系统
US10681372B2 (en) 2014-06-23 2020-06-09 Microsoft Technology Licensing, Llc Encoder decisions based on results of hash-based block matching
KR102276854B1 (ko) * 2014-07-31 2021-07-13 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
RU2679981C2 (ru) 2014-09-30 2019-02-14 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Основанные на хешах решения кодера для кодирования видео
GB2533905A (en) * 2014-10-06 2016-07-13 Canon Kk Method and apparatus for video coding and decoding
WO2016127271A1 (en) * 2015-02-13 2016-08-18 Xiaoou Tang An apparatus and a method for reducing compression artifacts of a lossy-compressed image
JP6454229B2 (ja) * 2015-06-10 2019-01-16 日本電信電話株式会社 画像符号化装置、画像復号装置、画像符号化プログラム及び画像復号プログラム
US20170006283A1 (en) * 2015-06-30 2017-01-05 Microsoft Technology Licensing, Llc Computationally efficient sample adaptive offset filtering during video encoding
KR102423880B1 (ko) 2015-10-06 2022-07-21 삼성전자주식회사 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법
KR20180064423A (ko) * 2015-11-04 2018-06-14 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
US10728546B2 (en) 2016-02-05 2020-07-28 Apple Inc. Sample adaptive offset systems and methods
EP3220643A1 (en) * 2016-03-14 2017-09-20 Thomson Licensing Method and device for encoding at least one image unit, and method and device for decoding a stream representative of at least one image unit
CN105959731B (zh) * 2016-04-28 2019-02-05 西安交通大学 一种数字电视的统计复用编码方法
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
EP3306922A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for encoding a picture using rate-distortion based block splitting
US10432972B2 (en) * 2016-10-19 2019-10-01 Google Llc Guided offset correction for loop restoration in video coding
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
EP3550842A4 (en) * 2016-12-30 2020-06-10 Huawei Technologies Co., Ltd. IMAGE FILTERING METHOD, APPARATUS AND DEVICE
JP7001346B2 (ja) 2017-01-30 2022-01-19 ダイキン工業株式会社 冷凍装置
CN110679149B (zh) * 2017-03-22 2023-04-04 汉阳大学校产学协力团 基于自适应像素分类基准的环路滤波方法
CN107360431B (zh) * 2017-06-30 2019-08-02 武汉斗鱼网络科技有限公司 一种帧类型的判断方法及装置
CN107707915B (zh) * 2017-09-30 2019-11-12 上海兆芯集成电路有限公司 采样点自适应偏移滤波的控制方法及其影像处理系统
JP6939892B2 (ja) 2017-10-25 2021-09-22 株式会社ソシオネクスト 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
JP7147788B2 (ja) 2018-01-05 2022-10-05 株式会社ソシオネクスト 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
GB2574423A (en) * 2018-06-05 2019-12-11 Canon Kk Video coding and decoding
JP6990627B2 (ja) 2018-06-29 2022-01-12 ダイキン工業株式会社 屋外空気調和装置
KR102312337B1 (ko) * 2018-10-19 2021-10-14 삼성전자주식회사 Ai 부호화 장치 및 그 동작방법, 및 ai 복호화 장치 및 그 동작방법
CN112997500B (zh) * 2018-11-09 2023-04-18 北京字节跳动网络技术有限公司 对基于区域的自适应环路滤波器的改进
GB2580173B (en) 2018-12-21 2022-07-27 Canon Kk A filter
CN109862374A (zh) * 2019-01-07 2019-06-07 北京大学 一种自适应环路滤波方法及装置
CN109859126B (zh) * 2019-01-17 2021-02-02 浙江大华技术股份有限公司 一种视频降噪方法、装置、电子设备及存储介质
CN117956149A (zh) 2019-03-08 2024-04-30 佳能株式会社 自适应环路滤波器
CN110677649B (zh) * 2019-10-16 2021-09-28 腾讯科技(深圳)有限公司 基于机器学习的去伪影方法、去伪影模型训练方法及装置
WO2021093801A1 (en) * 2019-11-14 2021-05-20 Beijing Bytedance Network Technology Co., Ltd. Coding of low bit-depth visual media data
US20230024020A1 (en) * 2019-12-09 2023-01-26 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive loop filtering
JP2023507259A (ja) * 2019-12-17 2023-02-22 アリババ グループ ホウルディング リミテッド ラップアラウンド動き補償を実行する方法
US11375221B2 (en) * 2020-02-12 2022-06-28 Tencent America LLC Method and apparatus for cross-component filtering
KR20220160038A (ko) 2020-03-26 2022-12-05 알리바바 그룹 홀딩 리미티드 비디오 코딩 데이터를 시그널링하기 위한 방법들
CN111698511B (zh) * 2020-06-07 2022-09-16 咪咕文化科技有限公司 图像滤波方法、装置、设备及可读存储介质
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
US11750816B2 (en) * 2020-12-03 2023-09-05 Alibaba Group Holding Limited Methods and systems for cross-component sample adaptive offset
TWI764492B (zh) * 2020-12-31 2022-05-11 鴻海精密工業股份有限公司 缺陷檢測分類方法、裝置、電子設備及存儲介質
CN112862924B (zh) * 2020-12-31 2022-11-25 哈尔滨工业大学(威海) 多模态成像中图像重建方法、装置和多模态成像技术系统
CN113099230B (zh) * 2021-02-22 2022-09-06 浙江大华技术股份有限公司 编码方法、装置、电子设备及计算机可读存储介质
CN112819017B (zh) * 2021-03-09 2022-08-16 遵义师范学院 基于直方图的高精度色偏图像识别方法
CN113068037B (zh) * 2021-03-17 2022-12-06 上海哔哩哔哩科技有限公司 用于样点自适应补偿的方法及装置、设备和介质
CN112752104B (zh) * 2021-04-06 2021-06-08 浙江华创视讯科技有限公司 图像补偿方法、装置、存储介质及电子设备
CN117795957A (zh) * 2021-08-19 2024-03-29 北京达佳互联信息技术有限公司 跨分量样点自适应偏移中的编解码增强

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0223557A3 (en) 1985-11-15 1989-04-05 Data General Corporation Display control in a data processing system
KR0148130B1 (ko) 1992-05-18 1998-09-15 강진구 블럭킹아티팩트를 억제시키는 부호화/복호화 방법 및 그 장치
US5502489A (en) 1994-01-03 1996-03-26 Daewoo Electronics Co., Ltd. Method for the motion adaptive spatial filtering of video signals in an image coding apparatus
US6519369B1 (en) * 1999-02-12 2003-02-11 Sony Corporation Method and apparatus for filter tap expansion
FI117533B (fi) 2000-01-20 2006-11-15 Nokia Corp Menetelmä digitaalisten videokuvien suodattamiseksi
JP4156188B2 (ja) * 2000-10-20 2008-09-24 パイオニア株式会社 情報出力装置及び情報出力方法、情報記録装置及び情報記録方法、情報出力記録システム及び情報出力記録方法並びに情報記録媒体
US7450641B2 (en) 2001-09-14 2008-11-11 Sharp Laboratories Of America, Inc. Adaptive filtering based upon boundary strength
CN100493205C (zh) * 2003-08-19 2009-05-27 松下电器产业株式会社 动态图像编码方法及动态图像解码方法
EP1510973A3 (en) * 2003-08-29 2006-08-16 Samsung Electronics Co., Ltd. Method and apparatus for image-based photorealistic 3D face modeling
US7369709B2 (en) 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
CN1285214C (zh) * 2004-01-14 2006-11-15 华中科技大学 一种环路滤波方法和环路滤波器
US7397854B2 (en) * 2004-04-29 2008-07-08 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7876833B2 (en) 2005-04-11 2011-01-25 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive up-scaling for spatially scalable coding
JP2008536450A (ja) * 2005-04-13 2008-09-04 トムソン ライセンシング ビデオ復号化のための方法および装置
US7511769B2 (en) * 2005-04-19 2009-03-31 Texas Instruments Incorporated Interframe noise reduction for video
EP1891548B1 (en) 2005-06-01 2017-04-26 Koninklijke Philips N.V. Method and electronic device for determining a characteristic of a content item
RU2409008C2 (ru) 2005-06-23 2011-01-10 Конинклейке Филипс Электроникс Н.В. Комбинированная передача изображения и соответствующих данных о глубине
KR100678958B1 (ko) * 2005-07-29 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
CN100438629C (zh) * 2005-09-19 2008-11-26 华为技术有限公司 图像编码处理中的环路滤波方法
KR100647402B1 (ko) * 2005-11-01 2006-11-23 매그나칩 반도체 유한회사 이미지 센서의 화질개선장치 및 그 방법
US7956930B2 (en) * 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
RU2406259C2 (ru) 2006-03-27 2010-12-10 Квэлкомм Инкорпорейтед Способы и системы для кодирования уточняющих коэффициентов при сжатии видеоданных
WO2007116551A1 (ja) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
US9001899B2 (en) 2006-09-15 2015-04-07 Freescale Semiconductor, Inc. Video information processing system with selective chroma deblock filtering
US20080080618A1 (en) 2006-09-28 2008-04-03 Kazuya Takagi Video decoding apparatus and method of the same
JP5801032B2 (ja) * 2006-11-08 2015-10-28 トムソン ライセンシングThomson Licensing インループのアーチファクト除去フィルタリングのための方法および装置
CN100578618C (zh) * 2006-12-04 2010-01-06 华为技术有限公司 一种解码方法及装置
US9445128B2 (en) * 2006-12-08 2016-09-13 Freescale Semiconductor, Inc. System and method of determining deblocking control flag of scalable video system for indicating presentation of deblocking parameters for multiple layers
WO2008075247A1 (en) * 2006-12-18 2008-06-26 Koninklijke Philips Electronics N.V. Image compression and decompression
US8174621B2 (en) * 2008-01-12 2012-05-08 Huaya Microelectronics Digital video decoder architecture
US8234193B2 (en) * 2008-03-03 2012-07-31 Wildfire Interactive, Inc. Method and system for providing online promotions through a social network-based platform
US8831086B2 (en) * 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
JP2009290552A (ja) * 2008-05-29 2009-12-10 Fujifilm Corp 動画圧縮装置および動画圧縮プログラム
KR20090129926A (ko) * 2008-06-13 2009-12-17 삼성전자주식회사 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
JP5161702B2 (ja) * 2008-08-25 2013-03-13 キヤノン株式会社 撮像装置、撮像システム、及び焦点検出方法
US9571856B2 (en) * 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
CN101742290B (zh) * 2008-11-12 2013-03-27 北京中星微电子有限公司 视频编、解码降噪方法和视频编、解码降噪装置
WO2010092740A1 (ja) * 2009-02-10 2010-08-19 パナソニック株式会社 画像処理装置、画像処理方法、プログラムおよび集積回路
CN101511024A (zh) * 2009-04-01 2009-08-19 北京航空航天大学 实时电子稳像中基于运动状态识别的运动补偿方法
EP2237557A1 (en) * 2009-04-03 2010-10-06 Panasonic Corporation Coding for filter coefficients
US20100329362A1 (en) 2009-06-30 2010-12-30 Samsung Electronics Co., Ltd. Video encoding and decoding apparatus and method using adaptive in-loop filter
JP5818800B2 (ja) * 2009-10-05 2015-11-18 トムソン ライセンシングThomson Licensing 符号化方法及び復号化方法
CN102792690B (zh) * 2010-03-09 2016-06-15 汤姆森特许公司 基于分类环路滤波器的方法和装置
KR101529992B1 (ko) * 2010-04-05 2015-06-18 삼성전자주식회사 픽셀 그룹별 픽셀값 보상을 위한 비디오 부호화 방법과 그 장치, 및 픽셀 그룹별 픽셀값 보상을 위한 비디오 복호화 방법과 그 장치
US8428372B2 (en) * 2010-04-09 2013-04-23 The Boeing Company Method, apparatus and computer program product for compressing data
CN101860753B (zh) * 2010-04-30 2012-10-03 北京航空航天大学 一种基于分形的视频压缩与解压缩方法
US8660174B2 (en) * 2010-06-15 2014-02-25 Mediatek Inc. Apparatus and method of adaptive offset for video coding
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US9247265B2 (en) * 2010-09-01 2016-01-26 Qualcomm Incorporated Multi-input adaptive filter based on combination of sum-modified Laplacian filter indexing and quadtree partitioning
CN106878729B (zh) * 2010-10-05 2019-09-24 寰发股份有限公司 基于分区基础的自适应环路滤波方法和装置
US9055305B2 (en) * 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
US20130294705A1 (en) * 2010-11-10 2013-11-07 Sony Corporation Image processing device, and image processing method
US9161041B2 (en) 2011-01-09 2015-10-13 Mediatek Inc. Apparatus and method of efficient sample adaptive offset
JP5524423B2 (ja) * 2011-01-09 2014-06-18 メディアテック インコーポレイテッド 効率的なサンプル適応オフセットの装置及び方法
US20120183078A1 (en) 2011-01-14 2012-07-19 Samsung Electronics Co., Ltd. Filter adaptation with directional features for video/image coding
US9001883B2 (en) * 2011-02-16 2015-04-07 Mediatek Inc Method and apparatus for slice common information sharing
GB2488830B (en) 2011-03-10 2015-07-29 Canon Kk Method and device for encoding image data and method and device for decoding image data
CN107396129B (zh) 2011-03-30 2020-05-05 Lg 电子株式会社 环路滤波方法及其设备
CA2823902C (en) 2011-04-21 2018-03-27 Mediatek Inc. Method and apparatus for improved in-loop filtering
US9008170B2 (en) 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
CN103535035B (zh) 2011-05-16 2017-03-15 寰发股份有限公司 用于亮度和色度分量的样本自适应偏移的方法和装置
ES2853673T3 (es) 2011-06-14 2021-09-17 Lg Electronics Inc Método para codificar y descodificar la información de imágenes
WO2012175195A1 (en) 2011-06-20 2012-12-27 Panasonic Corporation Simplified pipeline for filtering
DK3361725T3 (da) * 2011-06-23 2020-04-27 Huawei Tech Co Ltd Offset dekoderanordning, offset koderanordning, billedfilteranordning og datastruktur
CN107105305B (zh) 2011-06-24 2020-04-03 Lg 电子株式会社 图像信息编码和解码方法
WO2013002554A2 (ko) * 2011-06-28 2013-01-03 삼성전자 주식회사 픽셀 분류에 따른 오프셋 조정을 이용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
EP2988511A1 (en) 2011-08-04 2016-02-24 MediaTek Inc. Method and apparatus for reordered binarization of syntax elements in cabac
US9344743B2 (en) 2011-08-24 2016-05-17 Texas Instruments Incorporated Flexible region based sample adaptive offset (SAO) and adaptive loop filter (ALF)
US10070152B2 (en) * 2011-08-24 2018-09-04 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
WO2013042884A1 (ko) 2011-09-19 2013-03-28 엘지전자 주식회사 영상 부호화/복호화 방법 및 그 장치
KR20130034566A (ko) * 2011-09-28 2013-04-05 한국전자통신연구원 제한된 오프셋 보상 및 루프 필터를 기반으로 하는 영상 부호화 및 복호화 방법 및 그 장치
WO2013046990A1 (ja) * 2011-09-29 2013-04-04 シャープ株式会社 オフセット復号装置、オフセット符号化装置、画像フィルタ装置、および、データ構造
US20130083844A1 (en) 2011-09-30 2013-04-04 In Suk Chong Coefficient coding for sample adaptive offset and adaptive loop filter
US9357235B2 (en) 2011-10-13 2016-05-31 Qualcomm Incorporated Sample adaptive offset merged with adaptive loop filter in video coding
WO2013060250A1 (en) * 2011-10-24 2013-05-02 Mediatek Inc. Method and apparatus for non-cross-tile loop filtering
JP2013093792A (ja) * 2011-10-27 2013-05-16 Sony Corp 画像処理装置および方法
TWI577191B (zh) 2011-11-03 2017-04-01 太陽專利信託 以脈衝碼調變模式編碼之區塊的濾波技術
US10051289B2 (en) 2011-11-04 2018-08-14 Qualcomm Incorporated Adaptive center band offset filter for video coding
JP2013138395A (ja) 2011-11-04 2013-07-11 Sharp Corp 画像フィルタ装置、画像復号装置、画像符号化装置、および、データ構造
GB201119206D0 (en) * 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
US20130136173A1 (en) 2011-11-15 2013-05-30 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
JP5893754B2 (ja) * 2011-12-22 2016-03-23 サムスン エレクトロニクス カンパニー リミテッド 最大符号化単位別ピクセル分類によるオフセット調整を利用するビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
US9161035B2 (en) 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
US9380302B2 (en) * 2012-02-27 2016-06-28 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
KR101636269B1 (ko) * 2012-07-04 2016-07-05 인텔 코포레이션 3차원 비디오 코딩을 위한 뷰 간 필터 파라미터 재사용
CN104641640B (zh) * 2012-07-16 2018-04-20 三星电子株式会社 用于用信号传输sao参数的视频编码方法和视频编码设备以及视频解码方法和视频解码设备

Also Published As

Publication number Publication date
BR122019026456B1 (pt) 2022-05-24
JP2021040333A (ja) 2021-03-11
BR122019028115B1 (pt) 2023-02-07
PL3396957T3 (pl) 2020-05-18
BR122019028116B1 (pt) 2022-05-17
PL3657792T3 (pl) 2022-05-16
EP2777253B1 (en) 2017-04-12
EP3648461A1 (en) 2020-05-06
EP2777255A2 (en) 2014-09-17
KR101972366B1 (ko) 2019-04-25
US20190281322A1 (en) 2019-09-12
JP2018137752A (ja) 2018-08-30
EP3657791A1 (en) 2020-05-27
BR112014010885B1 (pt) 2022-05-17
KR101530244B1 (ko) 2015-06-22
US10462493B2 (en) 2019-10-29
ES2906724T3 (es) 2022-04-20
KR20140095112A (ko) 2014-07-31
KR20180125040A (ko) 2018-11-21
US9106931B2 (en) 2015-08-11
CN107707914A (zh) 2018-02-16
RU2014123386A (ru) 2015-12-20
CN111405278B (zh) 2022-05-24
CN107295337B (zh) 2020-03-31
CN107295337A (zh) 2017-10-24
US10575020B2 (en) 2020-02-25
JP6598957B2 (ja) 2019-10-30
KR20140090648A (ko) 2014-07-17
KR20180125616A (ko) 2018-11-23
WO2013068433A2 (en) 2013-05-16
CN107465918B (zh) 2020-08-11
JP2019110587A (ja) 2019-07-04
US20140369429A1 (en) 2014-12-18
EP3247117A1 (en) 2017-11-22
US20150334423A1 (en) 2015-11-19
EP2777253A2 (en) 2014-09-17
JP6184416B2 (ja) 2017-08-23
KR101530832B1 (ko) 2015-06-22
HUE047964T2 (hu) 2020-05-28
CN103975588A (zh) 2014-08-06
GB201205304D0 (en) 2012-05-09
CN107197270B (zh) 2020-03-17
CN103975587A (zh) 2014-08-06
RU2020108456A (ru) 2021-08-27
ES2772837T3 (es) 2020-07-08
JP6748749B2 (ja) 2020-09-02
CN107465919B (zh) 2020-05-01
US20150326860A1 (en) 2015-11-12
US20170280165A1 (en) 2017-09-28
IN2014CN04153A (pt) 2015-07-10
US20210306675A1 (en) 2021-09-30
PL3657791T3 (pl) 2022-06-20
EP3270592B1 (en) 2018-11-07
DK2777253T3 (en) 2017-05-22
HUE057829T2 (hu) 2022-06-28
JP2017225144A (ja) 2017-12-21
US20180367815A1 (en) 2018-12-20
DK2777255T3 (en) 2017-05-15
PL3657790T3 (pl) 2022-06-20
EP3247117B1 (en) 2020-01-08
EP3657792B1 (en) 2021-12-22
CN107566840B (zh) 2020-05-01
RU2014123360A (ru) 2015-12-20
KR102130480B1 (ko) 2020-07-06
ES2905473T3 (es) 2022-04-08
US20150334393A1 (en) 2015-11-19
RU2586862C2 (ru) 2016-06-10
WO2013068427A2 (en) 2013-05-16
JP2020022183A (ja) 2020-02-06
BR122019026461B1 (pt) 2023-01-31
EP2777255B1 (en) 2017-03-29
CN107197256B (zh) 2021-09-21
ES2771249T3 (es) 2020-07-06
JP2017098979A (ja) 2017-06-01
CN107197271B (zh) 2020-04-21
BR122019026460B1 (pt) 2022-11-22
KR20180125041A (ko) 2018-11-21
JP2019036982A (ja) 2019-03-07
CN107347156A (zh) 2017-11-14
CN107197256A (zh) 2017-09-22
GB2499983A (en) 2013-09-11
CN107197271A (zh) 2017-09-22
BR112014010885A2 (pt) 2017-04-18
WO2013068428A3 (en) 2013-07-18
US20140301480A1 (en) 2014-10-09
RU2708351C1 (ru) 2019-12-05
EP2777254A2 (en) 2014-09-17
US20170359598A1 (en) 2017-12-14
CN107347156B (zh) 2020-04-21
CN107483935A (zh) 2017-12-15
BR112014010882B1 (pt) 2022-05-17
JP2014533028A (ja) 2014-12-08
CN107396105A (zh) 2017-11-24
CN107707914B (zh) 2021-03-19
US10771819B2 (en) 2020-09-08
US9118931B2 (en) 2015-08-25
WO2013068427A3 (en) 2013-07-04
GB201206591D0 (en) 2012-05-30
EP3657792A1 (en) 2020-05-27
JP6419269B2 (ja) 2018-11-07
RU2636666C1 (ru) 2017-11-27
JP6797993B2 (ja) 2020-12-09
CN103975587B (zh) 2017-05-10
CN111405278A (zh) 2020-07-10
EP3270592A1 (en) 2018-01-17
JP6067024B2 (ja) 2017-01-25
CN107566840A (zh) 2018-01-09
JP6324481B2 (ja) 2018-05-16
RU2019137625A3 (pt) 2021-05-24
JP7077385B2 (ja) 2022-05-30
RU2586863C2 (ru) 2016-06-10
HUE057828T2 (hu) 2022-06-28
HUE048923T2 (hu) 2020-09-28
EP3657791B1 (en) 2021-12-22
GB2496220A (en) 2013-05-08
KR102029614B1 (ko) 2019-10-07
KR20140090698A (ko) 2014-07-17
EP3396957B1 (en) 2019-12-25
EP3657790A1 (en) 2020-05-27
EP3657790B1 (en) 2021-12-22
CN107197270A (zh) 2017-09-22
CN107483935B (zh) 2020-08-11
CN107396105B (zh) 2020-03-31
WO2013068428A2 (en) 2013-05-16
JP2014534762A (ja) 2014-12-18
IN2014CN04154A (pt) 2015-07-10
KR20140093247A (ko) 2014-07-25
CN103975588B (zh) 2017-06-06
US9794596B2 (en) 2017-10-17
US11601687B2 (en) 2023-03-07
GB201119206D0 (en) 2011-12-21
GB201200918D0 (en) 2012-02-29
RU2716535C1 (ru) 2020-03-12
EP3229471A1 (en) 2017-10-11
CN103975590A (zh) 2014-08-06
JP6490264B2 (ja) 2019-03-27
RU2702054C1 (ru) 2019-10-03
EP2777254B1 (en) 2017-09-06
GB201203285D0 (en) 2012-04-11
EP3396957A1 (en) 2018-10-31
KR20180125042A (ko) 2018-11-21
RU2641230C1 (ru) 2018-01-16
GB2496213B (en) 2014-12-03
KR20200022537A (ko) 2020-03-03
KR20180125052A (ko) 2018-11-21
KR102068432B1 (ko) 2020-01-20
US9848208B2 (en) 2017-12-19
CN103975590B (zh) 2017-09-26
ES2626823T3 (es) 2017-07-26
GB2496213A (en) 2013-05-08
RU2707926C1 (ru) 2019-12-02
RU2684478C1 (ru) 2019-04-09
GB2496222A (en) 2013-05-08
KR102030304B1 (ko) 2019-10-08
US10743033B2 (en) 2020-08-11
ES2906155T3 (es) 2022-04-13
KR20190114049A (ko) 2019-10-08
US20190373291A1 (en) 2019-12-05
WO2013068433A3 (en) 2013-11-21
US20140301489A1 (en) 2014-10-09
BR122019028117B1 (pt) 2022-11-22
CN107465919A (zh) 2017-12-12
KR20180125051A (ko) 2018-11-21
US11076173B2 (en) 2021-07-27
RU2019137625A (ru) 2021-05-24
RU2701130C1 (ru) 2019-09-24
US10085042B2 (en) 2018-09-25
JP6490276B2 (ja) 2019-03-27
BR112014010882A2 (pt) 2017-05-02
PL3247117T3 (pl) 2020-06-01
KR102068431B1 (ko) 2020-01-20
CN107465918A (zh) 2017-12-12
KR101920105B1 (ko) 2018-11-19
BR122019028118B1 (pt) 2022-05-17
KR101920529B1 (ko) 2018-11-20
KR102083280B1 (ko) 2020-03-02
HUE057826T2 (hu) 2022-06-28
RU2676410C1 (ru) 2018-12-28
ES2628070T3 (es) 2017-08-01
US9774886B2 (en) 2017-09-26
JP2018139426A (ja) 2018-09-06

Similar Documents

Publication Publication Date Title
BR122019026459B1 (pt) Método para decodificar pelo menos uma parte de uma imagem codificada compreendendo uma pluralidade de amostras
GB2531004A (en) Residual colour transform signalled at sequence level for specific coding modes

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04N 19/85 , H04N 19/117 , H04N 19/13 , H04N 19/136 , H04N 19/139 , H04N 19/14 , H04N 19/44 , H04N 19/80 , H04N 19/82 , H04N 19/86

Ipc: H04N 19/85 (2006.01), H04N 19/117 (2006.01), H04N

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 07/11/2012, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.