BR122019028118B1 - 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 - Google Patents

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 Download PDF

Info

Publication number
BR122019028118B1
BR122019028118B1 BR122019028118-1A BR122019028118A BR122019028118B1 BR 122019028118 B1 BR122019028118 B1 BR 122019028118B1 BR 122019028118 A BR122019028118 A BR 122019028118A BR 122019028118 B1 BR122019028118 B1 BR 122019028118B1
Authority
BR
Brazil
Prior art keywords
range
offset
values
classification
sample
Prior art date
Application number
BR122019028118-1A
Other languages
English (en)
Inventor
Edouard François
Guillaume Laroche
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 BR122019028118B1 publication Critical patent/BR122019028118B1/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
    • 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/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/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 refere-se a deslocamentos de compensação que são fornecidos para um conjunto de amostras reconstruídas de uma imagem. Cada amostra tem um valor de amostra. Um método para fornecer os deslocamentos de compensação compreende selecionar, com base em um critério de distorção de taxa, uma classificação dentre uma pluralidade de classificações predeterminadas. Cada classificação predeterminada tem uma faixa de classificação menor do que uma faixa total dos valores de amostra e é constituída de uma pluralidade de classes, cada uma definindo uma faixa de valores de amostra dentro da dita faixa de classificação, classe na qual uma amostra é colocada se seu valor de amostra estiver dentro da faixa da classe considerada. Um deslocamento de compensação está associado com cada classe da classificação selecionada para aplicação ao valor de amostra de cada amostra da classe.

Description

Campo da Invenção
[0001] A presente invenção refere-se a um método e dispositivo para fornecer deslocamentos de compensação para um conjunto de amostras reconstruídas de uma imagem. A invenção considera ainda um método e dispositivo para codificar ou decodificar uma sequência de imagens digitais.
[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 as redundâncias espaciais e temporais em fluxos de vídeo. Fundamentos da Invenção
[0003] Muitos formados de compressão de vídeo, tal como, por exemplo, H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, usam transformada do cosseno discreta baseada em bloco (DCT) e compensação de movimento para remover 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 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, ao 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 quanto de 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. Por exemplo, H.264/AVC usa um filtro de desblocagem. Esse filtro pode remover ruídos 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 do 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.
[0017] 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). Em seguida, essas direções são chamadas de “tipo” de classificação de deslocamento de borda.
[0018] 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.
[0019] De modo a ser mais adaptativo ao conteúdo do quadro, propôs-se aplicar a filtragem SAO baseada em uma estrutura quad-tree para codificar o SAO. Consequentemente, uma área de quadro que corresponde a um nó folha da quad-tree pode ou não ser filtrada por SAO de modo que somente algumas áreas 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 nó folha SAO, a classificação SAO, bem como seus parâmetros e os deslocamentos de todas as classes são transmitidos.
[0020] A principal vantagem da quad-tree é seguir eficazmente as propriedades locais do sinal. Entretanto, exige uma codificação dedicada no fluxo de bits. Outra solução substituindo a codificação baseada em quad-tree dos parâmetros SAO por uma codificação no nível LCU pode também ser considerada.
[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 do brilho de luma e desvios de cor de croma 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 luma (brilho) 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 é sistematicamente 0 e o valor máximo depende da profundidade de bit dos valores de pixels de acordo com a seguinte relação Max = 2pr°fundidade de bit — 1. por exemplo, quando a profundidade de bit é 8 bits, o valor máximo possível de um pixel pode ser 255. Assim, a faixa de valores de pixels está entre 0 e 255. Para essa profundidade de bit de 8 bits, cada classe inclui uma faixa de 16 valores de pixels. Ademais, para deslocamento de banda SAO, 2 grupos de classes são considerados. O primeiro contém 16 classes sucessivas no centro da faixa de valores de pixels, como representado na cor cinza na Figura 2. O segundo grupo também contém 16 classes, mas em ambas as extremidades da faixa de valores e pixels como representado em hachura na Figura 2. Para deslocamento de banda SAO de uma área de quadro, o grupo usado para a classificação e os 16 deslocamentos são inseridos no fluxo de bits.
[0024] 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. Em uma etapa inicial 301, as variáveis Sumj e SumNbPixj são configuradas para um valor de zero para cada uma das 16 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.
[0025] Na etapa 302, a contra variável i é configurada para o valor zero. Em seguida, o primeiro pixel da área de quadro 303 é extraído na etapa 304. Assume-se que o grupo SAO atual sendo processado é conhecido (primeiro ou segundo, como representado na Figura 2). Se for determinado na etapa 305 que o valor de pixel Pi não está no grupo SAO atual, então o valor da contra variável i é incrementado na etapa 308 de modo a classificar os pixels subsequentes da área de quadro 303. De outra forma, se for determinado na etapa 305 que o valor de pixel Pi está no grupo SAO atual, o número de faixa (ou número de classe) j correspondente ao valor de Pi é obtido na etapa 306. Na etapa 307 subsequente, a correspondente variável SumNbPixj correspondente é incrementado e a diferença entre Pi e seu valor original Piorg é adicionado a Sumj. Na etapa seguinte, a contra variável i é incrementada 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
[0026] A Figura 4 é um fluxograma que ilustra as etapas de um processo de decodificação aplicando os deslocamentos de banda SAO aos correspondentes grupos de classes. Esse processo pode ser também aplicado no lado do codificador de modo a produzir o quadro de referência usado para a estimativa e compensação de movimento de quadros subsequentes.
[0027] Uma etapa inicial 401 do processo envolve decodificar os valores de deslocamento para cada classe de valores de pixel de modo a produzir uma tabela de deslocamentos 402. No lado do codificador, a tabela de deslocamentos 402 é o resultado do algoritmo de seleção mostrado na Figura 3. Assim, no lado do codificador, a etapa 401 é substituída pelo algoritmo de seleção de deslocamento da Figura 3.
[0028] Na etapa 403, uma contra variável i é configurada para 0. O pixel Pi é extraído na etapa 405 de uma área de quadro 404 que contém N pixels. Na etapa 406, é determinado se ou não o pixel Pi pertence ao grupo atual de classes. Se for determinado que Pi está no grupo atual de classes, o número de classe relacionada j é identificado e o valor de deslocamento relacionado Offsetj é extraído na etapa 409 da tabela de deslocamentos 402. O valor de deslocamento extraído Offsetj é então adicionado ao valor de pixel de Pi na etapa 410 de modo a produzir o valor de pixel filtrado Pi’ na etapa 411. O valor de pixel filtrado é então inserido na área de quadro filtrada 415 na etapa 412 no pixel correspondente.
[0029] Se, na etapa 406, for determinado que o pixel Pi não está no grupo de deslocamento de banda SAO, então o valor de pixel de Pi é colocado na área de quadro filtrada 415 na etapa 412 sem filtragem. Após a etapa 412, a contra variável i é incrementada de modo a filtrar, se necessário, os pixels subsequentes da área de quadro atual 404. Após ser determinado na etapa 414 que todos os N pixels da área de quadro foram processados (isto é, i > N), a área de quadro filtrada 415 é reconstruída e pode ser adicionada ao quadro reconstruído SAO (quadro 105 da Figura 1).
[0030] Uma desvantagem do processo conhecido para a seleção de compensações é que ele não está adaptado a diferentes variações no conteúdo de pixel da imagem e aos diferentes tipos de componentes de pixels da imagem. Sumário da Invenção
[0031] A presente invenção foi implementada para abordar uma ou mais dessas considerações anteriores.
[0032] De acordo com um primeiro aspecto da presente invenção, é fornecido um método para fornecer deslocamentos de compensação para um conjunto de amostras reconstruídas de uma imagem, cada amostra tendo um valor de amostra, o método compreende:
[0033] selecionar, com base em um critério de distorção de taxa, uma classificação dentre uma pluralidade de classificações predeterminadas, cada dita classificação predeterminada tem uma faixa de classificação menor do que uma faixa total dos valores de amostra e é constituída de uma pluralidade de classes, cada uma definindo uma faixa de valores de amostra dentro da dita faixa de classificação, classe na qual uma amostra é colocada se seu valor de amostra estiver dentro da faixa da classe considerada; e
[0034] associar com cada classe da classificação selecionada um deslocamento de compensação para aplicação ao valor de amostra de cada amostra da classe considerada.
[0035] De acordo com um segundo aspecto da presente invenção, é fornecido um método para codificar uma imagem composta de uma pluralidade de amostras, o método compreende:
[0036] codificar as amostras;
[0037] decodificar as amostras codificadas para fornecer amostras reconstruídas;
[0038] executar filtragem de laço nas amostras reconstruídas, a filtragem de laço compreende aplicar deslocamentos de compensação aos valores de amostra das respectivas amostras reconstruídas, cada deslocamento de compensação está associado com uma faixa de valores de amostra, onde os deslocamentos de compensação são fornecidos de acordo com o método de acordo com o primeiro aspecto mencionado anteriormente da presente invenção; e
[0039] gerar um fluxo de bits de amostras codificadas.
[0040] De acordo com um terceiro aspecto da presente invenção, é fornecido um método para decodificar uma imagem composta de uma pluralidade de amostras, cada amostra tendo um valor de amostra, o método compreende:
[0041] receber valores de amostra codificadas;
[0042] receber dados de classificação codificados;
[0043] receber os dados de classificação e selecionar, com base nos dados de classificação decodificados, uma classificação dentre uma pluralidade de classificações predeterminadas, cada dita classificação predeterminada tendo uma faixa de classificação menor do que uma faixa total dos valores de amostra e constituída de uma pluralidade de classes, cada uma definindo uma faixa de valores de amostra dentro da dita faixa de classificação, classe na qual uma amostra é colocada se seu valor de amostra está dentro da faixa da classe considerada;
[0044] decodificar as amostras codificadas para fornecer valores de amostra reconstruída e decodificar os deslocamentos de compensação codificados;
[0045] associar os deslocamentos de compensação decodificados respectivamente com as classes da classificação selecionada; e
[0046] executar filtragem de laço nos valores de amostra reconstruída, a filtragem de laço compreendendo aplicar o deslocamento de compensação decodificado associado com cada classe da classificação selecionada a valores de amostra reconstruída dentro da faixa da classe considerada.
[0047] De acordo com um quarto aspecto da presente invenção, é fornecido um sinal carregando um conjunto de dados de informação para uma imagem representada por um fluxo de bits de vídeo, a imagem compreendendo um conjunto de amostras que podem ser reconstruídas, cada amostra que pode ser reconstruída tendo um valor de amostra, o conjunto de dados de informação compreende: dados de classificação com relação a uma classificação selecionada por um codificador dentre uma pluralidade de classificações predeterminadas, cada dita classificação predeterminada tem uma faixa de classificação menor do que uma faixa total dos valores de amostra e constituída de uma pluralidade de classes, cada uma definindo uma faixa de valores de amostra dentro da dita faixa de classificação, classe na qual uma amostra é colocada se seu valor de amostra está dentro da faixa da classe considerada, e cada classe da pluralidade de classes da classificação selecionada está associada com um deslocamento de compensação para aplicação a valores de amostra das amostras que podem ser reconstruídas dentro da faixa da classe considerada.
[0048] De acordo com um quinto aspecto da presente invenção, é fornecido um dispositivo para fornecer deslocamentos de compensação para um conjunto de amostras reconstruídas de uma imagem, cada amostra tem um valor de amostra, o método compreende:
[0049] dispositivo para selecionar, com base em um critério de distorção de taxa, uma classificação dentre uma pluralidade de classificações predeterminadas, cada dita classificação predeterminada tem uma faixa de classificação menor do que uma faixa total dos valores de amostra e é constituída de uma pluralidade de classes, cada uma definindo uma faixa de valores de amostra dentro da dita faixa de classificação, classe na qual uma amostra é colocada se seu valor de amostra estiver dentro da faixa da classe considerada; e
[0050] dispositivo para associar com cada classe da classificação selecionada um deslocamento de compensação para aplicação ao valor de amostra de cada amostra da classe considerada.
[0051] De acordo com um sexto aspecto da presente invenção, é fornecido um dispositivo de codificação para codificar uma imagem composta de uma pluralidade de amostras, o dispositivo compreende:
[0052] um codificador para codificar as amostras;
[0053] um decodificador para decodificar as amostras codificadas para fornecer amostras reconstruídas;
[0054] um filtro de laço para filtrar as amostras reconstruídas, o dispositivo de filtragem de laço compreende dispositivo de aplicação de deslocamento para aplicar deslocamentos de compensação aos valores de amostra das respectivas amostras reconstruídas, cada deslocamento de compensação associado com uma faixa de valores de amostra, onde os deslocamentos de compensação são fornecidos pelo dispositivo incorporando o quinto aspecto mencionado anteriormente da presente invenção; e
[0055] um gerador de fluxo de bits para gerar um fluxo de bits de amostras codificadas.
[0056] De acordo com um sétimo aspecto da presente invenção, é fornecido um dispositivo para decodificar uma imagem composta de uma pluralidade de amostras, cada amostra tendo um valor de amostra, o dispositivo compreende:
[0057] dispositivo para receber valores de amostra codificados;
[0058] dispositivo para receber dados de classificação codificados;
[0059] dispositivo para receber deslocamentos de compensação codificados;
[0060] dispositivo para decodificar os dados de classificação e para selecionar, com base nos dados de classificação decodificados, uma classificação dentre uma pluralidade de classificações predeterminadas, cada dita classificação predeterminada tendo uma faixa de classificação menor do que uma faixa total dos valores de amostra e constituída de uma pluralidade de classes, cada uma definindo uma faixa de valores de amostra dentro da dita faixa de classificação, classe na qual uma amostra é colocada se seu valor de amostra está dentro da faixa da classe considerada;
[0061] dispositivo para decodificar as amostras codificadas para fornecer valores de amostra reconstruída e decodificar os deslocamentos de compensação codificados;
[0062] dispositivo para associar os deslocamentos de compensação decodificados respectivamente com as classes da classificação selecionada; e
[0063] dispositivo para executar filtragem de laço nos valores de amostra reconstruída, a filtragem de laço compreendendo aplicar o deslocamento de compensação decodificado associado com cada classe da classificação selecionada a valores de amostra reconstruída dentro da faixa da classe considerada.
[0064] Um oitavo aspecto da presente invenção fornece um método para decodificar uma imagem composta de uma pluralidade de amostras, cada amostra tendo um valor de amostra, o método compreende:
[0065] receber valores de amostra codificados;
[0066] receber dados de classificação codificados com relação à classificação selecionada por um codificador dentre uma pluralidade de classificações predeterminadas, cada dita classificação predeterminada tendo uma faixa de classificação menor do que uma faixa total dos valores de amostra e constituída de uma pluralidade de classes, cada uma definindo uma faixa de valores de amostra dentro da dita faixa de classificação, classe na qual uma amostra é colocada se seu valor de amostra está dentro da faixa da classe considerada;
[0067] receber deslocamentos de compensação codificados associados respectivamente com as classes da classificação selecionada;
[0068] decodificar os valores de amostra codificados para fornecer valores de amostra reconstruída e decodificar os dados de classificação codificados e os deslocamentos de compensação; e
[0069] executar filtragem de laço nos valores de amostra reconstruída, a filtragem de laço compreendendo aplicar o deslocamento de compensação decodificado associado com cada classe da classificação selecionada a valores de amostra reconstruída dentro da faixa da classe considerada.
[0070] O codificador pode selecionar a classificação de qualquer forma adequada incluindo baseada em um critério de distorção de taxa ou em dependência das propriedades da distribuição estatística de valores de amostra.
[0071] No contexto da presente invenção, uma amostra pode corresponder a um único pixel, com um valor de amostra correspondente ao respectivo valor de pixel. Alternativamente, uma amostra pode compreende uma pluralidade de pixels, e o valor de amostra pode corresponder a um valor de pixel determinado a partir dos valores de pixel da pluralidade de pixels.
[0072] Ao 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.
[0073] 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.
[0074] Assim, de acordo com um nono 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 um método incorporando qualquer um dentre o primeiro, o segundo, o terceiro e o oitavo aspecto da presente invenção quando carregado e executado pelo aparelho programável.
[0075] De acordo com um décimo aspecto da presente invenção, é fornecido um meio de armazenamento legível por computador armazenando instruções de um programa de computador para implementar um método incorporando qualquer um dentre o primeiro, o segundo, o terceiro e o oitavo aspecto da presente invenção. Breve Descrição dos Desenhos
[0076] As modalidades da invenção serão agora descritas, por meio de exemplo somente, e com relação aos seguintes desenhos nos quais:
[0077] A Figura 1 é um fluxograma que ilustra as etapas de um processo de filtragem de laço da técnica anterior.
[0078] A Figura 2 ilustra graficamente uma classificação de deslocamento de banda adaptativo de amostra de um processo HEVC da técnica anterior.
[0079] 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.
[0080] A Figura 4 é um fluxograma que ilustra as etapas de um processo de filtragem de deslocamento de banda SAO de HEVC.
[0081] A Figura 5 é 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.
[0082] A Figura 6 é 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.
[0083] A Figura 7 é um fluxograma que ilustra as etapas de um método de codificação de acordo com as modalidades da invenção.
[0084] A Figura 8 é um fluxograma que ilustra as etapas de um processo de filtragem de laço de acordo com uma ou mais modalidades da invenção.
[0085] A Figura 9 é um fluxograma que ilustra as etapas de um método de decodificação de acordo com as modalidades da invenção.
[0086] A Figura 10 é um fluxograma que ilustra as etapas de um método para determinar a classificação de deslocamento de banda SAO de acordo com uma primeira modalidade da invenção.
[0087] A Figura 11 é um fluxograma que ilustra as etapas de um método para determinar a classificação adaptada de acordo com uma modalidade da invenção.
[0088] A Figura 12 é um fluxograma que ilustra as etapas de um método para determinar a classificação adaptada de acordo com uma modalidade alternativa da invenção.
[0089] A Figura 13 ilustra vários tamanhos da faixa útil para a classificação de acordo com uma modalidade da invenção.
[0090] A Figura 14 ilustra vários tamanhos de classes para a classificação de acordo com uma modalidade da invenção.
[0091] A Figura 15 ilustra vários tamanhos de classes em uma faixa útil para a classificação de acordo com uma modalidade da invenção.
[0092] A Figura 16 ilustra várias posições centrais de uma faixa útil de um primeiro grupo para a classificação de acordo com uma modalidade da invenção.
[0093] A Figura 17 ilustra várias posições centrais de uma faixa útil do segundo grupo para a classificação de acordo com uma modalidade da invenção.
[0094] A Figura 18 ilustra a seleção de distorção de taxa da classificação de parâmetros de acordo com uma modalidade da invenção.
[0095] As Figuras 19a e 19b ilustram possíveis posições da faixa útil dentro da faixa total de acordo com outra modalidade da invenção.
[0096] A Figura 20a ilustra um pseudocódigo aplicado na técnica anterior para codificar os parâmetros SAO no nível de LCU.
[0097] A Figura 20b lustra um pseudocódigo aprimorado de acordo com uma modalidade da invenção para codificar os parâmetros SAO no nível de LCU.
[0098] A Figura 21 é um fluxograma que corresponde ao pseudocódigo da Figura 20a.
[0099] A Figura 22 é um fluxograma que corresponde ao pseudocódigo da Figura 20b.
[0100] A Figura 23 é um fluxograma para uso na explicação da codificação dos parâmetros SAO de acordo com uma modalidade adicional da presente invenção.
[0101] A Figura 24 ilustra um pseudocódigo usado para codificar os parâmetros SAO de acordo com ainda outra modalidade da presente invenção.
[0102] A Figura 25 é um fluxograma correspondente ao pseudocódigo da Figura 24.
[0103] A Figura 26 é m fluxograma para uso na explicação da codificação dos parâmetros SAO de acordo com ainda uma modalidade adicional da presente invenção.
Descrição Detalhada da Invenção
[0104] A Figura 5 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 501, que é operável para transmitir pacotes de dados de um fluxo de dados para um dispositivo de recebimento, nesse caso, um terminal cliente 502, via uma rede de comunicação de dados 500. A rede de comunicação de dados 500 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 501 envia o mesmo conteúdo de dados a múltiplos clientes.
[0105] O fluxo de dados 504 fornecido pelo servidor 501 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 501 usando um microfone e uma câmera, respectivamente. Em algumas modalidades, os fluxos de dados podem ser armazenados no servidor 501 ou recebidos pelo servidor 501 a partir de outro provedor de dados, ou gerados no servidor 501. O servidor 501 é 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.
[0106] 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.
[0107] O cliente 502 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.
[0108] Embora um cenário de transmissão contínua seja considerado no exemplo da Figura 5, 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.
[0109] 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.
[0110] A Figura 6 ilustra esquematicamente um dispositivo de processamento 600 configurado para implementar ao menos uma modalidade da presente invenção. O dispositivo de processamento 600 pode ser um dispositivo tal como um microcomputador, uma estação de trabalho, ou um dispositivo portátil leve. O dispositivo 600 compreende um barramento de comunicação 613 conectado a:
[0111] - uma unidade de processamento central 611, tal como um microprocessador, denotada CPU;
[0112] - uma memória somente de leitura 607, denotada ROM, para armazenar programas de computador para implementar a invenção;
[0113] - uma memória de acesso aleatório 612, 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
[0114] - uma interface de comunicação 602 conectada a uma rede de comunicação 603 ao longo da qual os dados digitais a serem processados são transmitidos ou recebidos.
[0115] Opcionalmente, o aparelho 600 pode também incluir os seguintes componentes:
[0116] - um dispositivo de armazenamento de dados 604 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;
[0117] - uma unidade de disco 605 para um disco 606, a unidade de disco sendo adaptada para ler dados a partir do disco 606 ou gravar dados no dito disco;
[0118] - uma tela 609 para exibir dados e/ou servir como uma interface gráfica com o usuário, por meio de um teclado 610 ou qualquer outro dispositivo de apontamento.
[0119] O aparelho 600 pode ser conectado a vários periféricos, tal como, por exemplo, uma câmera digital 620 ou um microfone 608, 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 600.
[0120] O barramento de comunicação fornece comunicação e interoperabilidade entre os vários elementos incluídos no aparelho 600 ou conectados a ele. A representação do barramento não é limitante e, em particular, a unidade de processamento central é operável para comunicar instruções a qualquer elemento do aparelho 600 diretamente ou por meio de outro elemento do aparelho 600.
[0121] O disco 606 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.
[0122] O código executável pode ser armazenado ou em memória somente de leitura 607, no disco rígido 604 ou em um meio digital removível tal como, por exemplo, um disco 606 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 603, via a interface 602, de modo a ser armazenado em um dos dispositivos de armazenamento do aparelho 600 antes de ser executado, tal como o disco rígido 604.
[0123] A unidade de processamento central 611 é 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 604 ou na memória somente de leitura 607, são transferidos para a memória de acesso aleatório 612, 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.
[0124] Nesta modalidade, o aparelho é um aparelho programável que usa software para implementar a invenção. Entretanto, alternativamente, a presente invenção pode ser implementada em hardware (por exemplo, na forma de um Circuito Integrado de Aplicação Específica ou ASIC).
[0125] A Figura 7 ilustra um diagrama de bloco de um codificador de acordo com ao 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 611 do dispositivo 600, ao menos uma etapa correspondente de um método implementando ao menos uma modalidade de codificar uma imagem de uma sequência de imagens de acordo com uma ou mais modalidades da invenção.
[0126] Uma sequência original de imagens digitais i0 a in 701 é recebida como uma entrada pelo codificador 70. Cada imagem digital é representada por um conjunto de amostras, conhecidas como pixels.
[0127] Um fluxo de bits 710 é emitido pelo codificador 70 após a implementação do processo de codificação. O fluxo de bits 710 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.
[0128] As imagens digitais de entrada i0 a in 701 são divididas em blocos de pixels pelo módulo 702. 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.
[0129] O módulo 703 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.
[0130] A predição temporal é implementada pelo módulo de estimativa de movimento 704 e pelo módulo de compensação de movimento 705. Primeiramente, uma imagem de referência dentre um conjunto de imagens de referência 716 é 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 704. O módulo de compensação de movimento 705 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 705. A área de referência selecionada é indicada por um vetor de movimento.
[0131] Assim, em ambos os casos (predição espacial e temporal), um residual é calculado subtraindo-se a predição do bloco original.
[0132] Na predição INTRA implementada pelo módulo 703, uma direção de predição é codificada. Na predição temporal, ao menos um vetor de movimento é codificado.
[0133] 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 718 por um módulo de predição e codificação de vetor de movimento 717.
[0134] O codificador 70 compreende ainda um módulo de seleção 706 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 707 ao bloco residual, os dados transformados obtidos são então quantizados pelo módulo de quantização 708 e codificados por entropia pelo módulo de codificação por entropia 709. Finalmente, o bloco residual codificado do bloco atual sendo codificado é inserido no fluxo de bits 710.
[0135] O codificador 70 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 711 executa a quantização inversa dos dados quantizados, seguida por uma transformada inversa pelo módulo de transformação inversa 712. O módulo de predição intra reversa 713 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 714 adiciona realmente o residual obtido pelo módulo 712 à área de referência obtida a partir do conjunto de imagens de referência 716.
[0136] A pós-filtragem é então aplicada pelo módulo 715 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.
[0137] A Figura 8 é um fluxograma que ilustra as etapas do processo de filtragem de laço de acordo com ao menos uma modalidade da invenção. Em uma etapa inicial 801, o codificador gera a reconstrução do quadro total. Em seguida, na etapa 802, um filtro de desblocagem é aplicado nessa primeira reconstrução de modo a gerar uma reconstrução desblocada 803. 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 visual 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.
[0138] 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 804 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.
[0139] Na etapa 804, 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.
[0140] A determinação da classificação dos pixels para a filtragem adaptativa de deslocamento de amostra será explicada em mais detalhes em seguida com relação a qualquer uma das Figuras 10 a 17.
[0141] A Figura 9 ilustra um diagrama de blocos de um decodificador 90 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 611 do dispositivo 600, uma etapa correspondente de um método implementado pelo decodificador 90.
[0142] O decodificador 90 recebe um fluxo de bits 901 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 7, 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 902. Os dados residuais são então desquantizados pelo módulo 903 e então uma transformada reversa é aplicada pelo módulo 904 para obter os valores de pixel.
[0143] 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.
[0144] No caso de modo INTRA, um preditor INTRA é determinado pelo módulo de predição reversa intra 905 com base no modo de predição intra especificado no fluxo de bits.
[0145] 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 910.
[0146] O módulo de decodificação de vetor de movimento 910 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 906. A parte de imagem de referência indicada pelo vetor de movimento decodificado é extraída de uma imagem de referência 908 para aplicar a compensação de movimento reversa 906. Os dados de campo de vetor de movimento 911 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.
[0147] Finalmente, um bloco decodificado é obtido. A pós-filtragem é aplicada pelo módulo de pós-filtragem 907 similarmente ao módulo de pós-filtragem 815 aplicado no codificador como descrito com relação à Figura 8. Um sinal de vídeo decodificado 909 é finalmente fornecido pelo decodificador 90.
[0148] A Figura 10 é um fluxograma que ilustra as etapas de um método de acordo com uma primeira modalidade da invenção para classificar pixels reconstruídos de uma imagem para aplicação de deslocamentos de compensação. Nessa modalidade, as classes para a classificação dos pixels reconstruídos da região de quadro de acordo com seu valor de pixel são determinadas com base na distribuição estatística dos valores de pixels reconstruídos da região de quadro. O centro, a faixa útil e a quantidade de pixels por classe são determinados com base na distribuição de valores de pixels. Nesta modalidade, o decodificador pode aplicar exatamente o mesmo processo do decodificador para a segmentação da distribuição.
[0149] Em uma etapa inicial do processo, o módulo 1002 digitaliza uma área de quadro atual 1001 de modo a determinar a distribuição estatística dos valores de pixels dos pixels da área de quadro 1001 e a gerar um histograma correspondente 1003. Em uma modalidade particular, esse processo envolve atualizar uma tabela que contém o número de pixels para cada valor de pixel, isto é, para cada valor de pixel, o número de pixels tendo o valor de pixel é tabelado. A Tabela contém um número de células igual a MAX, o valor de pixel máximo determinado de acordo com a expressão Max = 2profundidade de bit — i, com base na profundidade de bit dos pixels.
[0150] O módulo 1004 determina então o centro do histograma gerado 1003. A faixa útil de valores de pixel do histograma é então determinada pelo módulo 1006 de acordo com a distribuição dos valores de pixel representados no histograma 1003 e onde apropriado com base no centro do histograma. Finalmente, as classes equiprováveis definindo faixas de valores de pixels são determinadas. A tabela 1009 é assim fornecida contendo a faixa de valores de pixel de cada classe ou alternativamente a tabela que contém os valores de pixel de cada pixel. Em algumas modalidades da invenção, a determinação de classes equiprováveis pode depender de um número de classes 1000 pré-determinado.
[0151] Na etapa 1004, vários algoritmos podem ser empregados para determinar o centro do histograma gerado 1003. Em uma modalidade, o valor mínimo MinHist e o valor máximo MaxHist do histograma podem ser encontrados. De modo a encontrar o valor mínimo MinHist, as células do histograma Histk são varridas do valor de pixel 0 à primeira célula Histk do histograma que não é igual a 0. E para encontrar MaxHist, as células são varridas na ordem inversa (do valor de pixel máximo MAX à primeira célula do histograma Histk que não é igual a 0). O centro do histograma CenterHist é calculado como segue: CenterHist = (MaxHist - Minus) / 2 + Minus
[0152] Em uma modalidade alternativa, o centro do histograma é considerado como sendo o centro médio ponderado da distribuição. Se considera-se que o valor da célula do histograma Histk é o número de pixels que têm o valor k, CenterHist é calculado como segue:
Figure img0002
[0153] Onde N é o número de pixels na área de quadro atual.
[0154] Na etapa 1006, uma técnica potencial para determinar a faixa útil do histograma gerado é selecionar Minust e Maxust descritos acima para ambas as extremidades da faixa útil.
[0155] Em outra modalidade, o valor mínimo do histograma MinRangeé determinado por uma varredura de 0 ao primeiro Histk que tem um valor superior ao limite α. Da mesma forma, MaxRange é determinado por varredura inversa a partir do valor de pixel máximo MAX ao primeiro Histk que é superior a um limite α. O limite α pode ser um valor predeterminado. Alternativamente, o limite α pode depender do número de pixels na área de quadro e/ou do tipo de componente do sinal de entrada (Croma e Luma).
[0156] Em uma modalidade particular, pode-se considerar que o número de classes é conhecido no lado do codificador e do decodificador. O número de classes de valores de pixels pode depender, por exemplo, do número de pixels na área de quadro atual de acordo com cada componente (Luma, Croma U e V).
[0157] De modo a produzir classes equiprováveis, o número de pixels NbPixRange na faixa útil 1007 é definido. O número de pixels na faixa útil NbPixRange é determinado através da varredura de cada célula do histograma Histk de k = MinRange a k = MaxRange. Então, o número determinado de pixels na faixa útil, NbPixRange , é dividido pelo número de classes 1000 para determinar o número ótimo de pixels em cada classe NbPixClasses.
[0158] A Figura 11 é um fluxograma que ilustra as etapas de um algoritmo para determinar classes equiprováveis de acordo com uma modalidade da invenção. Em uma etapa inicial 1101, o número de classes j é configurado para 0 e o valor de pixel atual k é configurado para MinRange. Para a classificação equiprovável, uma classe é identificada por sua faixa de valores de pixels. O número de classe j é assim identificado por sua faixa |_Minj Maxj_l de seu valor de pixel mínimo Minj para seu valor de pixel máximo Maxj.
[0159] Na etapa 1103, o valor de pixel mínimo Minj de classe atual indexado por j é configurado para o valor de pixel atual k. Então, SumNbPixj é configurado para 0 na etapa 1104. SumNbPixj corresponde ao número de pixels na faixa j. Então, o número de pixels tendo o valor de pixel k (Histk) é adicionado a SumNbPixj na etapa 1005. Na etapa 1106, é determinado se ou não a soma do número de pixels para a classe atual j SumNbPixj é superior ao número de pixels nas classes NbPixclasses. Se a condição não for alcançada, o valor k é incrementado na etapa 1107 e o número de pixels Histk para o valor de pixel k é adicionado a SumNbPixj na etapa 1105. Se é determinado que SumNbPixj > NbPixclasses ou se k alcança o valor máximo da faixa útil MaxRange, o valor máximo para a classe atual j é igual ao valor atual de k na etapa 1108. Nesse estágio, a classe j é definida - isto é, a faixa |_Minj Maxj_l da classe j foi determinada. A variável k é incrementada na etapa 1109 de modo a evitar a obtenção do mesmo valor de pixel em mais de uma classe. Ademais, a variável j é também incrementada na etapa 1110 de modo a definir a faixa de valores de pixels para a próxima classe. Se a variável j é superior ao número de classes NbPixclasses, então pode-se considerar que todas as classes foram definidas na etapa 1112.
[0160] Como uma consequência, o codificador determinará o valor de deslocamento para cada classe j, como descrito em relação à Figura 3, e a transmitirá ao decodificador. O codificador e o decodificador filtrará a área de quadro, como descrito em relação à Figura 4.
[0161] Pode-se notar que, nesta modalidade, o número de classes NbClasses não depende dos valores de pixels porque o número de classes é predeterminado com base em um valor de sintaxe. Consequentemente nesta modalidade, a análise do deslocamento de banda SAO é independente da decodificação dos outros quadros. Pode-se notar que a análise do deslocamento de banda SAO inclui a análise de cada deslocamento.
[0162] Em uma modalidade adicional para determinar a classificação equiprovável, o número de classes pode ser determinado de acordo com a distribuição de valores de pixels no histograma gerado. De fato, quando a amplitude da faixa útil é alta ou baixa, o número de classes deveria ter um impacto na eficiência da codificação. Consequentemente, uma classificação mais bem adaptável pode ser fornecida determinando-se o número de pixels em cada classe, bem como o número de valores de pixels.
[0163] A Figura 12 é um fluxograma que ilustra as etapas de um algoritmo de acordo com uma modalidade adicional para fornecer uma classificação mais adaptável. Esse fluxograma é baseado no fluxograma da modalidade da Figura 11, onde módulos de números finais iguais executam funções equivalentes. Entretanto, os módulos de decisão 1206 e 1211 desta modalidade operam diferentes condições de teste a partir das condições de teste operadas pelos módulos correspondentes 1106 e 1111 da Figura 11.
[0164] Nesta modalidade, o módulo de decisão 1206 para o laço com base nos valores k e seleciona Maxj para a classe j, se SumNbPixj > NbPixclasses ou se k alcança o valor máximo da faixa útil MaxRange, ou se k - Minj é estritamente menor do que a faixa máxima para uma classe (MaxClassRange). k - Minj corresponde ao número de valores de pixels na faixa atual da classe j. MaxClassRange é um número máximo predeterminado de valores de pixels na faixa. Essa faixa pode depender da profundidade de bits, do número de pixels N na área de quadro e do tipo de sinal (Luma, Croma U e V). Por exemplo, quando a profundidade de bits é 8, MaxClassRange para o componente Luma poderia ser igual a 16 como em uma implementação HEVC.
[0165] A vantagem da modalidade da Figura 12 comparada a da Figura 11 é que é uma eficiência de codificação para uma distribuição de valor de pixel com grande amplitude. Essa modalidade é mais adaptável à distribuição.
[0166] Pode-se notar que, nesta modalidade, o número determinado de classes depende dos valores de pixels, e assim a análise do quadro atual depende da decodificação dos quadros anteriores. De modo a ser mais robusto para erros de transmissão, o número de classes NbClasses é inserido no fluxo de bits. A transmissão de tais dados tem um impacto significativo na eficiência da codificação.
[0167] A vantagem principal da primeira modalidade de classificação das Figuras 10 a 12 é que a classificação é adaptada à distribuição de valores de pixels. Ademais, o centro, a faixa útil e o tamanho de cada classe e sua quantidade não precisam ser transmitidos. Consequentemente, como na implementação HEVC conhecida, nenhum dado adicional, separado dos dados representativos do deslocamento de cada classe, precisa ser transmitido para a classificação determinada.
[0168] Uma modalidade adicional da invenção para determinar uma classificação e que envolve a sinalização dos parâmetros da classificação será agora descrita com relação à Figura 13. O propósito da modalidade adicional de classificação é fornecer uma classificação ótima da distribuição de valores de pixels. A diferença comparada à modalidade anterior é que a classificação não é diretamente determinada com base na distribuição de valores de pixels, mas no critério de distorção. Na modalidade adicional, o codificador seleciona a classificação, mais bem adaptada à distribuição de valores de pixels, dentre as classificações potenciais predefinidas. Essa seleção é baseada no critério de distorção de taxa. Como nas modalidades anteriores, o centro, a faixa útil e o tamanho das classes do histograma gerado representando a distribuição de valores de pixel são determinados. Na modalidade adicional, esses parâmetros são transmitidos no fluxo de bits. De modo a minimizar o impacto da transmissão de tais dados, os tamanhos das classes e as faixas relacionadas são selecionados dentre os valores predefinidos. Consequentemente, o codificador insere o centro da classificação selecionada, o índice relacionado à classificação selecionada e os tamanhos das classes da classificação no fluxo de bits.
[0169] Para fornecer uma adaptação da distribuição de valores de pixels, vários tamanhos de faixas de valores de pixels são definidos como representado na Figura 13. Na Figura 13, a faixa total de valores de pixels é dividida em 32 subfaixas. Para um primeiro grupo de classes com relação aos valores de pixels localizados no centro da faixa de valores de pixels, 4 exemplos são representados 1301, 1302, 1303, 1304. O primeiro exemplo 1301 contém 26 faixas das 32 faixas potenciais. Assim, a faixa útil 1301 representa 13/16 da faixa útil. Da mesma forma, 1302 representa somente 8 faixas das 32 faixas potenciais, isto é, 1/4 da faixa útil, 1303 representa 1/8 da faixa total e 1304 representa 1/16 da faixa total. Para o esquema proposto, todos os tamanhos possíveis da faixa total para uma faixa correspondente a somente um valor de pixel podem ser considerados. O número de possíveis faixas úteis deveria ser predeterminado de acordo com a eficiência de codificação ou com o número de pixels na área de quadro.
[0170] A Figura 13 também mostra vários exemplos de tamanhos para o segundo grupo de classes com relação aos valores de pixels localizados nas bordas da faixa de valores de pixels. O segundo grupo inclui dois subgrupos de classes, um localizado em direção a cada borda do histograma. Os exemplos 1305, 1306, 1307, 1308 representam respectivamente o mesmo número de valores de pixels dos exemplos 1301, 1302, 1303, 1304 do primeiro grupo.
[0171] Nas modalidades da invenção, o tamanho das classes, isto é, a faixa de valores de pixels por classe, não é fixo, comparado com os métodos da técnica anterior. A Figura 14 mostra exemplos de vários tamanhos 1401 a 1406. Neste exemplo, os tamanhos das classes são de 32 pixels 1401 a somente 1 pixel 1406. Esses tamanhos de classes poderiam ser combinados com todas as faixas úteis possíveis como descrito anteriormente em relação à Figura 13. Nesta modalidade, considera-se que todas as classes têm o mesmo tamanho para uma faixa específica de valores de pixels. Assim, para um grupo, os dados representativos do tamanho de faixa útil e do tamanho das classes são inseridos no fluxo de bits.
[0172] Em outra modalidade, os tamanhos das classes para uma dada faixa útil são adaptados de acordo com a posição da classe na faixa útil. Mais precisamente, os tamanhos da classe são adaptados à distribuição dos valores de pixels. Na modalidade adicional, esses tamanhos são predeterminados para cada faixa útil de acordo com a distribuição de valor de pixel. De fato, o histograma da distribuição de valor de pixel geralmente corresponde a uma distribuição Gaussiana. O quão mais próximo do centro do histograma um valor de pixel está, mais numerosos são os pixels tendo um valor de pixel próximo desse valor. Isso significa que uma célula de histograma, Histk, próxima do centro tem um valor maior (número de pixels correspondentes) do que uma célula de histograma Histk em ambas as extremidades da faixa útil do histograma.
[0173] A Figura 15 mostra exemplos das duas modalidades descritas para os tamanhos das classes. O exemplo 1501 representa um tamanho fixo de 8 valores de pixels para uma faixa útil de 32 valores de pixels. 1502 representa um tamanho fixo de 4 valores de pixels para o mesmo tamanho de faixa útil.
[0174] O exemplo 1503 ilustra a outra modalidade para tamanhos adaptativos de classes para uma faixa atual de 32 valores de pixels. Neste exemplo, as classes em ambas as extremidades da faixa útil são maiores, isto é, têm uma faixa mais ampla de valores de pixels, do que as classes no centro com respectivamente 8 valores de pixels e 2 valores de pixels. Entre essas classes, as 2 outras classes têm uma faixa de 4 valores de pixels.
[0175] Os tamanhos de classes para o segundo grupo podem também ser adaptados à distribuição de valores de pixels. O objetivo do segundo grupo da implementação HEVC atual é explorar somente as duas extremidades do histograma. De fato, ambas as extremidades do histograma contêm os valores extremos que estão frequentemente relacionados a altas frequências onde o erro (devido à codificação lossy) é geralmente maior comparado às baixas frequências. Da mesma forma que no primeiro grupo, vários tamanhos de classes podem ser testados para as faixas úteis do segundo grupo. Nesse caso, para os dois subgrupos do segundo grupo, as subdivisões 1501 e 1502 podem ser comparados com o critério de distorção de taxa.
[0176] Ademais, a modalidade na qual os tamanhos de classes são adaptados pode ser aplicada. O exemplo 1504 ilustra os tamanhos adaptados propostos de classes para a primeira faixa (esquerda) do segundo grupo. O exemplo 1505 ilustra os tamanhos adaptados propostos de classes para o segundo subgrupo (direita) do segundo grupo. Nesse caso, as classes contêm mais valores de pixels em ambas as extremidades do que as classes próximas ao centro.
[0177] O objetivo do segundo grupo é explorar ambas as extremidades do histograma; consequentemente, é às vezes útil usar uma adaptação inversa de tamanhos para o segundo grupo. Nesse caso, o exemplo 1504 é usado para o segundo subgrupo (direito) e o exemplo 1505 é usado para o primeiro grupo (esquerdo) do segundo grupo. Nesta modalidade, as classes contêm menos valores de pixels em ambas as extremidades do que as classes próximas ao centro. Nesse caso, o objetivo é não produzir uma classificação equiprovável de classes, mas encontrar uma melhor segmentação de ambas as extremidades do segundo grupo.
[0178] Como a distribuição estatística de valores de pixels não está necessariamente centralizada no meio da faixa total de valores de pixels, um centro da distribuição baseada na faixa útil deveria ser determinado e transmitido no fluxo de bits com os dados de imagem. A Figura 16 mostra um exemplo de uma faixa total com diferentes posições centrais para uma faixa útil correspondente a um quarto da faixa total. Ao contrário do exemplo 1302 da Figura 13, para os quatro exemplos da Figura 16, 1601, 1602, 1603, 1604, o centro da faixa útil não está localizado no centro da faixa total. Essa solução permite que a classificação selecionada seja adaptada à distribuição dos valores de pixels.
[0179] O centro determinado pode ser então codificado para a transmissão no fluxo de bits. Várias técnicas podem ser observadas para a codificação dos dados.
[0180] Se é considerado que a profundidade de bits da área de quadro atual é 8 bits, o número de posições que poderiam ser consideradas o valor central corresponde a 256 menos o tamanho da faixa útil mínima. Por exemplo, comparado à Figura 13, o tamanho mínimo da faixa útil é igual a 2 e essas duas classes podem conter ao menos 1 pixel. Então, para esse exemplo específico, o centro pode ter um valor entre 1 e 254, assim 254 posições podem ser consideradas para o centro.
[0181] Outra solução é quantificar o valor central. Em uma modalidade, o centro é codificado de acordo com o tamanho das classes. Assim, por exemplo, se o tamanho das classes (ou o tamanho mínimo de todas as classes de uma faixa útil atual quando o esquema de tamanho de classe adaptado é usado) é igual a um valor de pixel, o centro não é quantificado e pode ser todas as posições centrais possíveis para a faixa útil atual. Se o tamanho das classes é 16 valores de pixels, como representado na Figura 16, somente os valores de pixels a cada 16 valores de pixels podem ser considerados. Assim, na Figura 16, o centro para os exemplos 1601, 1602, 1603, e 1604 são respectivamente 9, 23, 27 e 6. Em outra modalidade, somente as posições centrais iguais a um múltiplo do tamanho máximo de classes definidas no algoritmo podem ser consideradas. Assim, o centro é igual a um valor de pixel dividido pelo tamanho máximo de classes. Isso oferece uma redução em termos de número de bits a serem transmitidos.
[0182] Ademais, teoricamente, o centro mais provável é o centro da faixa total. Assim, os dados transmitidos para determinar a posição central no lado do decodificador é a diferença entre o centro da faixa total e o centro da faixa útil da classificação atual. Assim, por exemplo, na Figura 16, os dados transmitidos em relação ao centro para os exemplos 1601, 1602, 1603, 1604 são respectivamente 16 - 9 = 17, 16 - 23 = -11, 16 - 6 = 10.
[0183] Para o segundo grupo, o centro do histograma não precisa ser codificado. Assim, vários esquemas podem ser considerados para codificar o deslocamento dos dois subgrupos para o segundo grupo. As modalidades propostas na quantização do valor central descrito para o primeiro grupo podem ser facilmente estendidas para as modalidades propostas para o segundo grupo.
[0184] Em modalidades da invenção, a posição da faixa útil (classificação selecionada) pode ser especificada com a mesma precisão ou granularidade através da faixa total, isto é, independente da posição da classificação dentro da faixa total. Esse é o caso nos exemplos 1601 a 1604 mostrados na Figura 16, onde as posições (posições centrais) são 9, 23, 27 e 6. A faixa total é rotulada de 0 a 32. Há 32 posições possíveis e a granularidade é a mesma através da faixa total.
[0185] Entretanto, é também possível, como mostrado nas Figuras 19a e 19b, fornecer mais posições possíveis em uma parte da faixa total do que na outra parte da faixa total. Em outras palavras, a granularidade da posição varia em dependência de onde a classificação está dentro da faixa total. Essas modalidades propõem uma quantização desigual da faixa total (aqui rotulada de 0 a 32) com uma granularidade variável de modo a posicionar mais precisamente o centro da classificação (faixa útil) nas partes mais importantes (ou provavelmente) da faixa total. Também, a quantização desigual possibilita que o número de bits exigido para sinalizar a posição da classificação seja limitado enquanto ainda fornecendo a precisão adequada nas partes importantes da faixa total. Essa granularidade mais fina poderia ser aplicada, por exemplo, no meio da faixa total, como representado na Figura 19a. Nessa figura, as possíveis posições centrais correspondem a índices que são representados por uma linha sólida espessa. O intervalo entre duas possíveis posições centrais é menor no meio da faixa total do que nas extremidades. Assim, a posição central pode ser configurada mais precisamente no meio da faixa total do que nas extremidades da faixa total.
[0186] Na Figura 19b, o intervalo entre duas possíveis posições centrais é menor em ambas as extremidades da faixa total do que no meio. Por exemplo, essa modalidade pode ser particularmente útil no caso de ter importantes valores de amostra em valores extremos da distribuição.
[0187] Mais geralmente, uma quantização mais fina poderia ser aplicada em qualquer lugar na faixa total.
[0188] Quando a quantização variável, como descrita acima, é usada, a faixa de classificação (tamanho da faixa útil) pode ser fixa para todas as posições. Por exemplo, a faixa de classificação pode compreender quatro classes, cada uma feita de 8 valores de pixels.
[0189] É também possível fazer a faixa de classificação/tamanhos de classes variar com a posição, de modo que na Figura 19a, a faixa de classificação seja 8 valores de pixels nas posições 12 a 20, 16 valores de pixels em posições 10 e 26, e 32 valores de pixels nas posições 2 e 28.
[0190] A quantização variável, como descrita aqui, pode ser usada independente do método aplicado para determinar a faixa de classificação. Esse método pode usar, por exemplo, as propriedades da distribuição estatística de valores de amostra ou usar um critério de distorção de taxa.
[0191] A quantização variável poderia ser predeterminada tanto no codificador quanto no decodificador. Por exemplo, o codificador e o decodificador poderiam atribuir índices às possíveis posições centrais (ou posições esquerdas), por exemplo, na Figura 19a, posição 2 é o índice 0, a posição 6 é o índice 1, a posição 10 é o índice 2, a posição 12 é o índice 3, a posição 13 é o índice 4, etc. Então, é suficiente para o codificador transmitir para o decodificador o índice da classificação selecionada. Alternativamente, a informação sobre a quantização variável poderia ser determinada no codificador e sinalizada para o decodificador via um fluxo de bits.
[0192] Em uma modalidade particular, pode-se considerar que o centro do histograma é sempre o centro da faixa total. Assim, no caso em que somente um deslocamento é considerado. Ambos os grupos são escalonados para o centro com o mesmo deslocamento. Consequentemente, somente um dado precisa ser codificado: o deslocamento da primeira faixa do segundo grupo. Os exemplos 1701, 1702, 1703 e 1704 da Figura 17 são exemplos de tais deslocamentos. Nos exemplos 1701, 1702, 1703, 1704, os deslocamentos são respectivamente 4, 6, 10 e 0. O deslocamento pode ser diretamente codificado sem predição.
[0193] Em uma modalidade adicional, ambos os subgrupos do segundo grupo têm uma posição independente na faixa total como representado nos exemplos 1705, 1706, 1707, e 1708. Duas formas de codificação podem ser consideradas.
[0194] Na primeira, o centro de um primeiro grupo não existente é codificado com o tamanho da faixa útil desse primeiro grupo não existente.
[0195] A segunda forma de codificar independentemente dois grupos é transmitir 2 deslocamentos a partir das duas extremidades da faixa total (uma para cada grupo). Assim, para os exemplos 1705, 1706, 1707 e 1708, o deslocamento transmitido é respectivamente 11 e 32 - 38 = 4 para 1705, 21 e 0 para 1706, 3 e 32 - 16 = 32 para 1707, 7 e 32 - 31 = 1 para 1708.
[0196] A Figura 18 é um fluxograma que ilustra as etapas de um algoritmo de seleção de distorção de taxa de acordo com uma modalidade da invenção. Para propósitos explicativos simplificados, somente a seleção para o primeiro grupo sem tamanhos de classes adaptados é considerada. A seleção para as outras modalidades descritas anteriormente pode ser facilmente adaptada.
[0197] Em uma etapa inicial 1801, as estatísticas da área de quadro atual são calculadas. Isso envolve determinar variáveis Histk e Sumk para todos os valores de pixels k. Histk corresponde ao número de pixels tendo um valor de pixel igual ao valor k e Sumk corresponde à soma de diferenças entre todos os pixels tendo um valor de pixel igual ao valor k e seus valores de pixel originais. O algoritmo inclui 3 laços em três parâmetros: tamanho de classes S, tamanho da faixa R e o centro C. O primeiro laço testa cada possível tamanho de classe na etapa 1803. Por exemplo, o tamanho definido na Figura 14. O deslocamento para cada subfaixa da faixa total é calculado na etapa 1804. Por exemplo, se a profundidade de bits é 8 e o tamanho das classes é 16, então a distorção e o deslocamento para as 32 possíveis faixas na faixa total são calculados. Por propriedades, o deslocamento e a distorção são calculados por combinação linear de Histk e Sumk para todos os valores de k na faixa atual. Então, para cada possível faixa R 1805, e cada possível centro C 1806, um custo de distorção de taxa é avaliado na etapa 1807. Essa avaliação é baseada no critério de distorção de taxa. Quando todos os centros C 1808, todas as faixas 1809 e todos os tamanhos 1810 são testados, os melhores parâmetros S, R, C são selecionados na etapa 1811 com base no melhor custo de distorção de taxa. As vantagens desse segundo esquema para produzir uma classificação equiprovável incluem uma redução da complexidade e uma melhora na eficiência de codificação. A seleção de classificação do centro, faixa e tamanho das classes oferece uma seleção de distorção de taxa ótima comparada às modalidades onde a classificação é baseada na distribuição estatística de valores de pixels. Certamente, essa modalidade fornece uma melhora em termos de eficiência de codificação comparação com a implementação HEVC atual. Esse esquema é menos complexo no lado do decodificador comparado com o anterior uma vez que a distribuição de pixels não precisa ser determinada no decodificador. Ademais, esse esquema pode ser menos complexo do que as técnicas conhecidas no HEVC porque, em alguns grupos, menos classes são usadas.
[0198] O algoritmo representado na Figura 18 executa uma distorção de taxa total com base na seleção de todos os parâmetros de deslocamento de banda: o tamanho das classes S, a faixa R, a posição de um valor representativo do centro C. De modo a limitar a complexidade, é possível fixar alguns parâmetros. Em uma implementação particular do algoritmo da Figura 18, o tamanho S e a faixa R são fixados em valores dados conhecidos pelo codificador e pelo decodificador. Por exemplo, S poderia representar 8 valores de pixels e R poderia representar 32 valores de pixels correspondentes a 4 classes de 8 pixels. Como uma consequência, o único parâmetro a ser otimizado é o valor representativo do centro C.
[0199] Como as modalidades da invenção levam em conta a repartição de valores de pixels através da faixa de valores de pixels na determinação da classificação dos pixels, a classificação pode ser adaptada consequentemente a diferentes distribuições de valores de pixels. Em particular, a classificação pode ser adaptada de acordo com o tipo de componente dos pixels. Por exemplo, no caso de um conjunto de pixels de componente Croma, os valores de pixels tendem a ser menores comparados aos valores de pixels de pixels de componente Luma. Em adição, os valores de pixels de Croma U têm uma distribuição diferente da de valores de pixels de Croma V que têm valores de pixels mais concentrados e relativamente mais altos. Ademais, no caso de pixels de componente croma, a distribuição de valores de pixels tende a ser mais concentrada em torno dos valores de pixel de pico comparado com a dos pixels de componente Luma que fornece uma distribuição mais amplamente espalhada.
[0200] Como visto acima, de modo a evitar a determinação da distribuição de pixels no lado do decodificador, os parâmetros S, R e C são transmitidos no fluxo de bits em adição ao tipo SAO (não SAO, deslocamento de borda ou deslocamento de banda) e os valores de deslocamento de compensação. Quando o tamanho da classe e a faixa são fixos, somente C é transmitido de modo a permitir que o decodificador restaure o centro da faixa.
[0201] No caso de S e R fixos, uma solução conhecida para codificar os parâmetros SAO consiste em aplicar o pseudocódigo da Figura 20A, descrito na forma de um fluxograma pela Figura 21.
[0202] O processo começa pela determinação dos parâmetros SAO, incluindo o tipo de SAO (armazenado na palavra de código sao_type_idx), o valor representativo do centro da faixa útil (armazenado na palavra de código sao_band_position) quando o tipo de deslocamento de banda é usado, e os deslocamentos SAO (armazenados nas palavras de código sao_offset). Na Figura 20A, cldx representa o índice do componente de cor ao qual SAO é aplicado, rx e rx representam a posição da área a qual o SAO é aplicado, e i é o índice da classe de valores de amostra.
[0203] A codificação de parâmetros SAO começa quando, na etapa 2003, com a codificação do tipo de SAO usando um código Exp Golomb não sinalizado (ue(v)) (isto é, código de comprimento variável não sinalizado). Se o tipo de SAO é o tipo 5 (deslocamento de banda), a codificação continua com a codificação do valor representativo da posição do centro da faixa útil usando um código de comprimento fixo não sinalizado de tamanho 5 (u(5)) na etapa 2017. Então, a codificação dos quatro deslocamentos correspondentes às quatro classes contidas na faixa é executada iterativamente nas etapas 2019 a 2025. Aqui, cada deslocamento é codificado sando um código Exp Golomb sinalizado (se(v)) (isto é, código de codificação de comprimento variável (VLC) sinalizado). O processo de codificação então termina com a etapa 2027.
[0204] Se o tipo de SAO não é deslocamento de banda, verifica-se se o tipo de SAO é não SAO (não SAO significa que nenhum deslocamento é aplicado às amostras consideradas). Se não SAO foi selecionado, o processo de codificação para na etapa 2027.
[0205] Ao contrário, continua-se com a codificação iterativa dos quatro deslocamentos de borda nas etapas 2007 a 2013. Novamente, o processo de codificação para na etapa 2027.
[0206] Os códigos VLC são geralmente usados quando a faixa de valores a representar é relativamente alta, mas alguns valores nessa faixa são mais prováveis do que outros. Aos valores mais prováveis é então dado um código curto, enquanto aos valores menos prováveis é dado um código longo. A principal desvantagem desses códigos é que eles induzem a uma complexidade de decodificação maior do que os códigos de comprimento fixo (FLC). De fato, um código VLC tem que ser lido bit a bit uma vez que o tamanho final do código não é conhecido, enquanto todos os bits de um código FLC podem ser lidos diretamente uma vez que seu tamanho é conhecido.
[0207] Na Figura 20B e 22, propõe-se uma alternativa a esse processo de codificação substituindo códigos VLC por códigos FLC.
[0208] Esse processo de codificação começa com a etapa 2201 que é idêntica à etapa 2001. Na etapa 2203, a codificação VLC da palavra de código sao_type_idx é substituída por uma codificação FLC. 3 bits são necessários aqui para codificar os 6 possíveis valores de tipo de SAO (isto é, o tipo “não SAO", os 4 tipos de “deslocamento de borda” e o tipo de “deslocamento de banda”). Verifica-se então que o tipo de SAO é “não SAO”. Nesse caso, nada mais é codificado e o processo termina com a etapa 2215. Ao contrário, verifica-se se o tipo de SAO é “deslocamento de banda”. Se for, o valor representativo da posição do centro da faixa é codificado na palavra de código SAO_band_position na forma de um código FLC não sinalizado de tamanho 5. De fato, neste exemplo, com um tamanho de classe de 8 valores de amostra e uma faixa constituída de quatro classes, 28 posições diferentes são possíveis para uma faixa total de 256 valores.
[0209] Essa etapa é seguida pela codificação dos quatro deslocamentos SAO nas etapas 2211 a 2213. Aqui, um código FLC substitui o código VLC da etapa 2023 e 2011. Ao invés de usar um código VLC de no máximo 5 bits cobrindo os valores de deslocamento inteiro de -31 a 32, aqui usa-se um código FLC de tamanho 2 bits capaz de codificar somente 4 valores diferentes, geralmente (-2, -1, 1, 2). Reduzir o número de possíveis valores tem o efeito de concentrar a codificação nos valores de deslocamento mais frequentemente usados.
[0210] O processo para após a codificação de deslocamento na etapa 2215.
[0211] Nota-se que, em outra modalidade, a faixa representada pelos deslocamentos pode ser estendida pela codificação em um cabeçalho da imagem, um cabeçalho de fatia ou um cabeçalho de LCU, um fator de multiplicação a ser aplicado aos deslocamentos obtidos pelo código de 2 bits. Por exemplo, com um fator de multiplicação igual a 4, os deslocamentos codificados (-2, -1, 1, 2) se tornam (-8, -4, 4, 8). O fator de multiplicação pode também ser padronizado (fixo) ou ser conferido a partir de outra LCU. Por exemplo, o fator de multiplicação aplicável a uma LCU anterior pode ser assumido para aplicar à presente LCU.
[0212] Similarmente, em outra modalidade, um valor de deslocamento, codificado em um cabeçalho de imagem, um cabeçalho de fatia ou um cabeçalho de LCU, poderia ser aplicado aos deslocamentos obtidos pelo código de 2 bits. Por exemplo, com um valor de deslocamento de 5, os deslocamentos codificados (-2, -1, 1, 2) se tornam (3, 4, 6, 7). Novamente, o valor de deslocamento pode ser também padronizado (fixo) ou ser conferido a partir de outra LCU. Por exemplo, o valor de deslocamento aplicável a uma LCU anterior pode ser assumido para aplicar à presente LCU.
[0213] Os testes mostraram que ter menos valores de deslocamento possíveis não reduz o desempenho do método SAO significativamente. Parece que a perda induzida pela supressão de alguns valores de deslocamento é compensada pela supressão do custo da taxa de bits pesado de menos valores de deslocamento prováveis.
[0214] Testes adicionais mostraram também que o número de diferentes valores de deslocamento pode ser reduzido mais para 3 e até para 2 deslocamentos (exigindo somente um bit para codificar) sem significativa perda de desempenho.
[0215] Na Figura 23, um aprimoramento adicional do processo de codificação é proposto. Considera-se que os valores de deslocamento usados no caso do tipo de deslocamento de borda, podem ser inferidos diretamente a partir do tipo de deslocamento de borda. Nesse caso, nenhuma codificação dos valores de deslocamento de borda é exigida. Como um lembrete, cada tipo de deslocamento de borda está associado com 4 classes dependendo da direção do sinal, e cada classe tem um valor de deslocamento associado. Essa modalidade é motivada por testes que mostram que, em geral, para um dado tipo de deslocamento de borda e uma dada classe, os valores de deslocamento estão próximos entre si e geralmente são os mesmos. Como uma consequência, propõe-se fixar para cada tipo de deslocamento de borda um conjunto de 4 valores de deslocamento. Por exemplo, propõe-se a seguinte associação:
[0216] - Deslocamento de borda vertical: (-2, -1, 1, 2)
[0217] - Deslocamento de borda horizontal: (-2, -1, 1, 3)
[0218] - Primeiro deslocamento de borda diagonal: (-3, -2, -1, 1)
[0219] - Segundo deslocamento de borda diagonal: (-1, 1, 2, 3)
[0220] As etapas 2301 e 2303 na Figura 23 são idênticas às etapas 2201 e 2203 já explicadas com relação à Figura 22. Nas etapas 2305 e 2307, verifica-se se o tipo de SAO é “deslocamento de borda” ou “não SAO” respectivamente. Em ambos os casos, nenhum deslocamento é codificado. No caso em que o tipo de SAO é “deslocamento de borda”, quando lendo o valor do tipo de deslocamento de borda, um decodificador inferirá os valores de deslocamento a partir do tipo de deslocamento de borda graças à associação conhecida com valores de deslocamento fixos.
[0221] Na modalidade da Figura 23, se o tipo de SAO é “deslocamento de banda”, o valor representativo da posição do centro da faixa é codificado na etapa 2309 e os quatro valores de deslocamento são codificados iterativamente com as etapas 2311 a 2317. O processo de codificação termina com a etapa 2319.
[0222] Na modalidade da Figura 24 e 25, aplica-se outra modificação do processo de codificação descrito na Figura 20a e 21. Como já mencionado na modalidade anterior, um código FLC de 5 bits é usado para codificar a informação representativa da posição do centro da faixa (sao_band_position), enquanto somente 28 posições diferentes são usadas. Nessa condição, quatro códigos FLC, cada um com comprimento de 5 bits, permanecem não utilizados. Propõe-se aqui tirar proveito desses quatro códigos FLC esparsos para remover a palavra de código usada para codificar o tipo de SAO. Uma nova palavra de código, SAO_band_position_and_EO será usada para codificar conjuntamente as posições de faixa e os tipos de deslocamento de borda. Essa nova palavra de código tem também comprimento de 5 bits.
[0223] Como usual, o processo começa na etapa 2501 com a definição dos parâmetros SAO. Esse processo é seguido na etapa 2503 pela codificação de um sinalizador de 1 bit de comprimento (SAO_LCU_flag) indicando se SAO está em uso ou não. Se SAO não é usado (etapa 2505), o processo para (etapa 2507).
[0224] Se SAO é usado, verifica-se, na etapa 2509, qual tipo de SAO é usado. Se o tipo de SAO é “deslocamento de banda”, então, na etapa 2513, os primeiros 28 códigos da palavra de código SAO_band_position_and_EO são usados para codificar o valor representativo da posição do centro da faixa. Se o tipo de SAO é “deslocamento de borda”, então, na etapa 2511, os quatro últimos códigos da palavra de código SAO_band_position_and_EO são usados para codificar o tipo de deslocamento de borda (vertical, horizontal, primeira diagonal, ou segunda diagonal). As etapas 2511 ou 2513 são seguidas pela codificação dos quatro valores de deslocamento com as etapas 2515 a 2521.
[0225] Casualmente, embora as palavras de código esparsas sejam usadas na presente modalidade para codificar o tipo de deslocamento de borda, está claro que as palavras de código esparsas podem ser alternativamente usadas para outros propósitos. Qualquer outra informação que precisa ser enviada do codificador para o decodificador pode ser codificada usando as palavras de código esparsas.
[0226] Na Figura 26, propõe-se uma modalidade adicional para determinar os deslocamentos a serem aplicados no caso do deslocamento de banda. Essa modalidade é motivada por testes que mostram que, no caso de deslocamento de banda, a maioria dos deslocamentos tem baixas amplitudes em valor absoluto. De fato, os valores de deslocamento são, em geral, iguais a -2, -1, 1 e 2. Quando o número de classes em uma faixa é reduzida para 4, por exemplo, como no exemplo das Figuras 20a a 25, o número de grupos diferentes de 4 valores de deslocamento é também reduzido. No exemplo acima com 4 valores de deslocamento diferentes e 4 classes, o número de grupos diferentes é 44 = 256. Nas modalidades das Figuras 21, 22, 23 e 25, 8 bits são usados para codificar os valores de deslocamento (4 valores de deslocamento, cada um codificado usando 2 bits). Aqui, considera-se que todos os grupos de 4 deslocamentos têm a mesma probabilidade de serem selecionados. Entretanto, alguns desses grupos são menos prováveis do que os outros. Ao remover os grupos menos prováveis, é possível reduzir o número de bits exigido para codificá- los. Como uma consequência, ao invés de codificar 4 valores de deslocamento diferentes usando 2 bits para cada valor de deslocamento, propõe-se atribuir índices a diferentes grupos de 4 valores de deslocamento e codificar o índice, o índice sendo codificado usando menos de 8 bits graças à remoção dos grupos menos prováveis. As probabilidades dos grupos poderiam ser determinadas aplicando-se SAO em um conjunto de sequências de treinamento e estatísticas de computação nos grupos. Uma tabela reunindo todos os grupos possíveis ordenados de acordo com sua probabilidade de ser selecionado poderia ser predeterminada e conhecida pelo codificador e pelo decodificador. Nessa tabela, cada grupo de deslocamentos estará associado com um valor de índice. O número de bits alocados ao índice de codificação dos grupos poderia ser fixo (padronizado) ou fixo para uma sequência, um quadro, uma fatia ou uma LCU e codificado nos cabeçalhos correspondentes. Um subconjunto de grupos na tabela correspondente aos grupos mais prováveis será determinado pelo codificador e pelo decodificador dependendo do número de bits alocados à codificação de índice.
[0227] Uma modalidade representando a seleção do melhor grupo é descrita na Figura 26. O processo começa com a etapa 2601 na qual uma variável j é inicializada. Essa variável j é progressivamente aumentada para permitir o teste de todos os possíveis grupos de deslocamentos. Na modalidade proposta, considera-se os grupos de 4 deslocamentos, mas outros números de deslocamentos poderiam ser considerados. Na etapa 2603, testou-se se todos os grupos foram testados (por exemplo, NbOffsetGroup poderia ser igual a 128). Se for, o processo para e uma palavra de código de menos de 8 bits correspondente ao grupo selecionado é codificada. Se não, o processo continua com a inicialização de uma variável i permitindo testar todas as classes em uma faixa (etapa 2605). Na etapa 2606, a variável SumDiff(j) representando a soma da diferença entre as amostras originais e as amostras codificadas por filtragem SAO correspondentes ao grupo de deslocamento j é inicializada em 0. Aqui, somente 4 classes são consideradas, mas outros números de classes consistentes com o número de deslocamentos são possíveis. Na etapa 2607, se restam algumas classes para serem testadas, inicializa- se uma variável k permitindo testar todas as possíveis amostras em uma faixa de amostras correspondente à classe i. Com as etapas 2611 a 2619, calcula-se a soma dos valores absolutos das diferenças entre as amostras codificadas filtradas com o deslocamento de classe i no grupo de deslocamentos j e amostras originais na classe considerada i. Aqui, orig(k) é uma média dos valores de amostra originais correspondentes ao valor codificado enc(k). Filter(i,j) é o valor de deslocamento correspondente à classe i, no grupo de deslocamento j. SumDiff(j) é a soma das diferenças calculadas em todas as classes constituindo uma faixa (aqui 4 classes). No laço compreendendo as etapas 2621 a 2626, todas as somas calculadas de diferenças são comparadas e o índice do grupo tendo a soma mínima é selecionado. O índice selecionado corresponde ao grupo de deslocamentos permitindo, quando aplicado às amostras codificadas, minimizar a diferença entre as amostras filtradas e a amostra original.
[0228] Durante o processo de codificação de sintaxe, a codificação dos valores de deslocamento, como representada, por exemplo, pelas etapas 2211 a 2213 na Figura 22, é substituída pela codificação do índice correspondente ao grupo selecionado de deslocamentos.
[0229] A classificação de pixels de componente Luma é executada separadamente da classificação de pixels de componente Croma U ou V e assim cada classificação pode ser adaptada consequentemente de modo que cada classe tenha um número similar de pixels.
[0230] Os métodos de modalidades da invenção fornecem assim uma abordagem de classificação mais flexível que pode ser adaptada para fornecer uma classificação mais ótima independentemente para ambos os sinais Luma ou Croma, levando assim a uma melhora na eficiência da codificação.
[0231] 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.
[0232] 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.
[0233] Aspectos adicionas da presente invenção são apresentados abaixo.
[0234] De acordo com um primeiro aspecto adicional da invenção, é fornecido um método para fornecer deslocamentos de compensação para um conjunto de amostras reconstruídas de uma imagem, cada amostra tendo um respectivo valor de amostra, os valores de amostra de uma pluralidade de amostras do conjunto são representáveis por uma distribuição estatística de valores de amostra, o método compreende determinar, em dependência das propriedades da distribuição estatística de valores de amostra, uma pluralidade de classes para repartição das amostras de acordo com seu valor de amostra correspondente, cada classe define uma respectiva faixa de valores de amostra; e associar, com cada classe determinada, um respectivo deslocamento de compensação para aplicação ao respectivo valor de amostra de cada amostra da dita classe.
[0235] Como neste aspecto da invenção a distribuição estatística dos valores de amostra é levada em conta na determinação da classificação de amostras, a classificação pode ser adaptada consequentemente a todas as possíveis faixas de valores de amostra. Ademais, a classificação pode ser adaptada de acordo com o tipo de componente das amostras. Por exemplo, no caso de pixels correspondentes a um sinal Croma, a distribuição de valores de pixel tende a ser mais concentrada em torno de valores de pixel de pico comparada com a de um sinal Luma que fornece uma distribuição mais amplamente espalhada. Os métodos de modalidades da invenção fornecem assim uma abordagem de classificação mais flexível que pode ser adaptada para fornecer uma classificação mais ótima independentemente para ambos os sinais Luma ou Croma, levando assim a uma melhora na eficiência da codificação.
[0236] Em uma modalidade, as propriedades da distribuição estatística compreendem um centro determinado da distribuição estatística de valores de amostra de imagem.
[0237] Em uma modalidade, as propriedades da distribuição estatística compreendem uma faixa útil de valores de amostra da distribuição estatística.
[0238] Em uma modalidade, as classes são determinadas de modo que as amostras sejam compartilhadas substancialmente uniformemente entre as classes.
[0239] Em uma modalidade, as amostras do conjunto podem ser de ao menos um primeiro tipo de componente ou de um segundo tipo de componente, e a pluralidade de classes é determinada dependente do tipo de componente do conjunto de amostras.
[0240] Em uma modalidade, o número de classes é predeterminado, a faixa de valores de amostra definida para cada classe é determinada em dependência das propriedades da distribuição estatística.
[0241] Em outra modalidade, o número de classes e a faixa de valores de amostra definida para cada classe são determinados em dependência das propriedades da distribuição estatística.
[0242] Em uma modalidade, o número de classes é determinado em dependência do número de amostras tendo um valor de amostra na faixa útil.
[0243] Em uma modalidade, o número de classes é determinado de acordo com o tipo de componente.
[0244] Em uma modalidade, o método inclui determinar um número máximo de valores de amostra por classe de acordo com o número de valores de amostras na faixa útil.
[0245] Em uma modalidade, determinar a pluralidade de classes compreende selecionar, a partir de uma pluralidade de classificações predeterminadas, uma classificação definindo a pluralidade de classes adaptadas às propriedades da distribuição estatística.
[0246] Em uma modalidade, a faixa de valores de amostra para cada classe, o centro da distribuição estatística e/ou a faixa útil de valores de amostras é determinado com base nos critérios de distorção de taxa.
[0247] Em uma modalidade, a faixa de valores de amostra para cada classe, o centro da distribuição estatística e/ou a faixa útil de valores de amostra é predeterminado. Em uma modalidade, a faixa útil de valores de amostra é determinada com base em uma comparação dos valores de amostra com relação a um valor limite, onde o valor limite depende do número total de amostras, o valor limite depende do tipo de componente das amostras, ou o valor limite é um valor predeterminado.
[0248] Em uma modalidade, o deslocamento de compensação para cada classe é determinado a partir de uma média da diferença entre o valor de amostra de cada amostra reconstruída da classe e o respectivo valor de amostra da correspondente imagem original.
[0249] Em uma modalidade, o conjunto de amostras é um de uma pluralidade de conjuntos de amostras da imagem, o mesmo número de classes sendo determinado para cada conjunto.
[0250] Em uma modalidade, o valor de amostra é representativo de uma profundidade de bits, onde a faixa útil, a faixa de cada classe e/ou o centro da distribuição estatística é dependente da profundidade de bit.
[0251] Em uma modalidade, a faixa de valores de amostra para uma dada classe é dependente da posição da classe dentro da faixa útil.]
[0252] Em uma modalidade, a faixa de valores de amostra para uma dada classe localizada na borda da distribuição estatística é superior à faixa de valores de amostra para uma dada classe em uma região central da distribuição.
[0253] Em uma modalidade, o centro da distribuição estatística é determinado com base na faixa útil.
[0254] Em uma modalidade, a pluralidade de classes compreende um primeiro grupo de classes localizado em uma parte central da distribuição estatística e um segundo grupo de classes inclui um primeiro e um segundo subgrupo de classes localizados nas respectivas partes de borda da distribuição estatística.
[0255] Em uma modalidade, as posições do segundo subgrupo de classes na distribuição estatística são fornecidas como dados para codificação.
[0256] Em uma modalidade, as posições dos subgrupos do segundo grupo são independentes da faixa total da distribuição estatística.
[0257] Em uma modalidade, o centro da distribuição estatística não é fornecido para codificação.
[0258] Em uma modalidade, a posição da faixa útil (classificação) dentro da faixa total é selecionada dentre uma pluralidade de possíveis posições distribuídas ao longo da faixa total, o intervalo entre duas posições sucessivas é menor do que ao menos uma parte da faixa total do que em outra parte da faixa total.
[0259] Por exemplo, a parte tendo o menor intervalo pode estar no meio da faixa total.
[0260] De acordo com outro exemplo, a parte tendo o menor intervalo pode estar em uma ou em ambas as extremidades da faixa total.
[0261] As posições podem ser posições centrais. Alternativamente, elas podem ser posições finais.
[0262] Às possíveis posições podem ser atribuídos índices.
[0263] Em uma modalidade, a faixa de valores de amostra para cada classe, o centro da distribuição estatística e/ou a faixa útil de valores de amostra é predeterminado.
[0264] Em uma modalidade, ao menos dois tipos diferentes de valores de deslocamento podem ser gerados, um dos tipos é assim chamado de valores de deslocamento de banda que, como descrito acima, estão associados respectivamente com as classes (faixas de valores de amostras). Um ou mais outros tipos de valores de deslocamento podem ser assim chamados de valores de deslocamento de borda. Pode haver um tipo diferente de valores de deslocamento de borda por direção, por exemplo, quatro tipos diferentes correspondendo respectivamente a quatro direções diferentes. Assim, pode haver um conjunto de valores de deslocamento de borda por direção. Um tipo de valor de deslocamento (banda ou borda) pode ser então selecionado. O critério de seleção não está limitado, mas um critério adequado é um critério de distorção de taxa. Somente o tipo selecionado de filtragem SAO (deslocamento de banda ou borda) é então aplicado pelo codificador e pelo decodificador. A seleção pode ser executada para cada área de quadro. Adicionalmente, pode ser possível selecionar “não SAO", isto é, aplicar nem deslocamento de banda nem deslocamento de borda, por exemplo, se nenhum aprimoramento significativo é obtido por qualquer tipo. Em uma modalidade, o tipo selecionado de filtragem SAO é codificado e transmitido pelo codificador para o decodificador.
[0265] Em uma modalidade, um código de comprimento fixo é usado para codificar o tipo selecionado.
[0266] Em uma modalidade, quando o tipo selecionado é deslocamento de banda, um valor representativo da posição da faixa útil é codificado. A posição pode ser uma posição central ou uma posição de extremidade da faixa útil.
[0267] Em uma modalidade, um código de comprimento fixo é usado para codificar a posição da faixa útil.
[0268] Em uma modalidade, quando o número de palavras de código diferentes permitidas pelo comprimento do código de comprimento fixo usado para codificar as palavras de código correspondentes aos valores representativos da posição da faixa útil é maior do que o número real de diferentes posições possíveis, palavras de código esparsas são usadas para codificar outra informação. Por exemplo, em uma modalidade, as palavras de código esparsas são usadas para codificar o tipo (direção) do deslocamento de borda.
[0269] Em uma modalidade, os deslocamentos de compensação são codificados com códigos de comprimento fixo. Isso pode se aplicar a deslocamentos de banda ou deslocamentos de borda ou ambos os tipos de deslocamento.
[0270] Em uma modalidade, o número de diferentes deslocamentos de compensação permitidos pelo comprimento do código de comprimento fixo é menor do que o número de possíveis deslocamentos de compensação.
[0271] Em uma modalidade, um fator de multiplicação é aplicado aos valores de deslocamento de compensação, e os valores de deslocamento de compensação multiplicados são usados para filtragem.
[0272] Em uma modalidade, o fator de multiplicação é transmitido do codificador para o decodificador.
[0273] Em uma modalidade, um valor de deslocamento é aplicado aos valores de deslocamento de compensação, e os valores de deslocamento de compensação deslocados são usados para filtragem.
[0274] Em uma modalidade, o valor de deslocamento é transmitido do codificador para o decodificador.
[0275] Em uma modalidade, os valores de deslocamento de borda para ao menos um tipo (direção) são predeterminados.
[0276] Em uma modalidade, um sinalizador indicando se os deslocamentos de compensação têm que ser aplicados ou não em um conjunto de amostras reconstruídas de uma imagem é codificado.
[0277] Em uma modalidade, os grupos de valores de deslocamento de banda são predefinidos, cada deslocamento do grupo está associado com uma classe de uma faixa útil.
[0278] Em uma modalidade, a cada grupo é atribuído um índice.
[0279] Em uma modalidade, os grupos predefinidos são reunidos em uma tabela, a ordem da tabela depende da probabilidade de seleção de cada grupo.
[0280] Em uma modalidade, a probabilidade de seleção de cada grupo é calculada aplicando-se métodos para fornecer deslocamentos de compensação incorporando a presente invenção a um conjunto de sequências de treinamento.
[0281] Em uma modalidade, o grupo de valores de deslocamento de banda, dentre os grupos predefinidos de valores de deslocamento de banda, que tem a diferença mínima entre as amostras originais e as amostras filtradas é selecionado.
[0282] Em uma modalidade, os índices dos grupos são codificados usando um código de comprimento fixo.
[0283] Em uma modalidade, o número de diferentes índices codificados de grupos permitidos pelo comprimento do código de comprimento fixo é menor do que o número de diferentes grupos possíveis.
[0284] Em uma modalidade, um subconjunto de grupos de deslocamentos de banda dentro dos possíveis diferentes grupos é determinado em dependência da probabilidade de seleção de cada grupo e do comprimento do código de comprimento fixo.
[0285] Em uma modalidade, o comprimento do código de comprimento fixo usado para codificar os índices dos grupos de deslocamentos de banda é predeterminado.
[0286] Em uma modalidade, o comprimento do código de comprimento fixo usado para codificar os índices dos grupos de deslocamentos de compensação é codificado em um cabeçalho de sequência, um grupo de cabeçalhos de imagem, um cabeçalho de imagem, um cabeçalho de fatia ou um cabeçalho de LCU.
[0287] De acordo com um segundo aspecto adicional da invenção, é fornecido um método para codificar uma imagem composta de uma pluralidade de amostras, o método compreendendo codificar as amostras; decodificar as amostras codificadas para fornecer amostras reconstruídas; executar filtragem de laço nas amostras reconstruídas, a filtragem de laço compreende aplicar deslocamentos de compensação aos valores de amostra das respectivas amostras reconstruídas, cada deslocamento de compensação está associado com uma faixa de valores de amostra, onde os deslocamentos de compensação são fornecidos de acordo com o método do primeiro aspecto adicional; e gerar um fluxo de bits de amostras codificadas.
[0288] Em uma modalidade, o método inclui transmitir, no fluxo de bits, dados codificados representativos dos respectivos deslocamentos de compensação para cada classe.
[0289] Em uma modalidade, o método inclui transmitir, no fluxo de bits, dados de classificação codificados definindo a pluralidade de classes determinadas.
[0290] Em uma modalidade, os dados de classificação compreendem dados representativos de um centro da distribuição estatística.
[0291] Em uma modalidade, os dados de classificação compreendem dados representativos da faixa de valores de amostra definidos para cada uma da pluralidade de classes.
[0292] Em uma modalidade, os dados de classificação compreendem dados representativos de uma faixa útil da distribuição estatística.
[0293] De acordo com um terceiro aspecto adicional da invenção, é fornecido um método para decodificar uma imagem composta de uma pluralidade de amostras, o método compreende:
[0294] receber amostras codificadas;
[0295] decodificar as amostras codificadas para fornecer amostras reconstruídas;
[0296] executar filtragem de laço nas amostras reconstruídas, a filtragem de laço compreendendo aplicar deslocamentos de compensação aos valores de amostra das respectivas amostras reconstruídas, cada deslocamento de compensação está associado com uma faixa de valores de amostra, onde os deslocamentos de compensação são fornecidos de acordo com o método de qualquer uma das modalidades anteriores.
[0297] Outro dos aspectos adicionais da invenção fornece um método para decodificar uma imagem composta de uma pluralidade de valores de amostra, o método compreende:
[0298] receber valores de amostra codificadas;
[0299] receber dados de classificação codificados definindo uma pluralidade de classes associadas com os respectivos deslocamentos de compensação fornecidos de acordo com o método de qualquer uma das modalidades anteriores, cada deslocamento de compensação corresponde a uma faixa de valores de amostra;
[0300] decodificar as amostras codificadas para fornecer amostras reconstruídas e decodificar os deslocamentos de compensação codificados; e
[0301] executar filtragem de laço nas amostras reconstruídas, a filtragem de laço compreendendo aplicar os deslocamentos de compensação recebidos às amostras de imagem das respectivas amostras, de acordo com o valor de amostra da amostra.
[0302] Em uma modalidade, os dados de classificação compreendem dados representativos de um centro da distribuição estatística, dados representativos da faixa de valores de amostra definidos para cada uma da pluralidade de classes, e/ou dados representativos de uma faixa útil da distribuição estatística.
[0303] De acordo com outro dos aspectos adicionais da invenção, é fornecido um sinal que carrega um conjunto de dados de informação para uma imagem representada por um fluxo de bits de vídeo, a imagem compreende um conjunto de amostras que podem ser reconstruídas, cada amostra que pode ser reconstruída tem um respectivo valor de amostra, os valores de amostra de uma pluralidade de amostras reconstruídas do conjunto são representáveis por uma distribuição estatística de valores de amostra; o conjunto de dados de informação compreende: dados de classificação representativos de uma pluralidade de classes associadas com os respectivos deslocamentos de compensação para aplicação aos valores de amostra das respectivas amostras reconstruídas, onde os dados de classificação são determinados de acordo com a distribuição estatística.
[0304] Em uma modalidade, os dados de classificação compreendem dados representativos de um centro da distribuição estatística, dados representativos da faixa de valores de amostra definidos para cada uma da pluralidade de classes, e/ou dados representativos de uma faixa útil da distribuição estatística.
[0305] De acordo com outro dos aspectos adicionais da invenção, é fornecido um dispositivo para fornecer deslocamentos de compensação para um conjunto de amostras reconstruídas de uma imagem, cada amostra tem um respectivo valor de amostra, os valores de amostra de uma pluralidade de amostras do conjunto são representáveis por uma distribuição estatística de valores de amostra, o dispositivo compreende:
[0306] dispositivo para determinar, em dependência das propriedades da distribuição estatística de valores de amostra, uma pluralidade de classes para repartição das amostras de acordo com seu valor de amostra correspondente, cada classe define uma respectiva faixa de valores de amostra; e
[0307] dispositivo para associar, com cada classe determinada, um respectivo deslocamento de compensação para aplicação ao respectivo valor de amostra de cada amostra da dita classe.
[0308] Outro dos aspectos adicionais da invenção fornece um dispositivo de codificação para codificar uma imagem composta de uma pluralidade de amostras, o dispositivo compreende: um codificador para codificar as amostras; um decodificador para decodificar as amostras codificadas para fornecer amostras reconstruídas; um filtro de laço para filtrar as amostras reconstruídas, o dispositivo de filtragem de laço compreende dispositivo de aplicação de deslocamento para aplicar deslocamentos de compensação aos valores de amostra das respectivas amostras reconstruídas, cada deslocamento de compensação associado com uma faixa de valores de amostra, onde os deslocamentos de compensação são fornecidos pelo dispositivo de uma modalidade anterior; e um gerador de fluxo de bits para gerar um fluxo de bits de amostras codificadas.
[0309] Ainda outro dos aspectos adicionais da invenção fornece um dispositivo de decodificação para decodificar uma imagem composta de uma pluralidade de amostras, compreendendo: um receptor para receber valores de amostra codificados; um decodificador para decodificar as amostras codificadas para fornecer amostras reconstruídas; um filtro de laço para executar filtragem de laço nas amostras reconstruídas, o filtro de laço compreendendo dispositivo para aplicar deslocamentos de compensação aos valores de amostra das respectivas amostras reconstruídas, cada deslocamento de compensação está associado com uma faixa de valores de amostra, onde os deslocamentos de compensação são fornecidos por um dispositivo de acordo com uma modalidade anterior.
[0310] Outro dos aspectos adicionais da invenção fornece um dispositivo de decodificação para decodificar uma imagem composta de uma pluralidade de valores de amostras, compreendendo: um receptor para receber valores de amostra codificados e receber os dados de classificação codificador definindo uma pluralidade de classes associadas com os respectivos deslocamentos de compensação fornecidos por um dispositivo de acordo com uma modalidade anterior, cada deslocamento de compensação corresponde a uma faixa de valores de amostra; um decodificador para decodificar as amostras codificadas para fornecer amostras reconstruídas e decodificar os deslocamentos de compensação codificados; e um filtro de laço para executar filtragem de laço nas amostras reconstruídas, o filtro de laço compreendendo dispositivo para aplicar os deslocamentos de compensação recebidos às amostras de imagem das respectivas amostras, de acordo com o valor de amostra da amostra.
[0311] 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.
[0312] 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.

Claims (1)

1. 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, o método sendo caracterizado pelo fato de que compreende: uma etapa de determinar uma posição final de uma faixa alvo (1303) na qual o processo de deslocamento adaptativo de amostra é executado, a partir de uma faixa que valores de amostras podem ter, em que a faixa alvo é menor do que metade da dita faixa que os valores de amostra podem ter; uma etapa de determinar um valor de deslocamento correspondente a cada uma subfaixa diferente de quatro subfaixas consecutivas na faixa alvo (1303) na qual o processo de deslocamento adaptativo de amostra é executado, cada dito valor de deslocamento sendo a aplicado a amostras que têm valores de amostras dentro da uma faixa correspondente das quatro subfaixas consecutivas na faixa alvo; e um etapa de codificar a posição final e os valores de deslocamento correspondentes respectivamente às quatro subfaixas consecutivas.
BR122019028118-1A 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 BR122019028118B1 (pt)

Applications Claiming Priority (6)

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
BR112014010882-0A BR112014010882B1 (pt) 2011-11-07 2012-11-07 Método e dispositivo para decodificar uma imagem, sinal, dispositivo e meio de armazenamento
PCT/EP2012/072069 WO2013068427A2 (en) 2011-11-07 2012-11-07 Method and device for providing compensation offsets for a set of reconstructed samples of an image

Publications (1)

Publication Number Publication Date
BR122019028118B1 true BR122019028118B1 (pt) 2022-05-17

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 (9)

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

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
BR122019026459B1 (pt) 2022-11-22
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
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
US11601687B2 (en) Method and device for providing compensation offsets for a set of reconstructed samples of an image

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
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

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