BR112013015517B1 - Método para reduzir artefatos de bloqueio, unidade de filtro de desbloqueio, codificador, decodificador, equipamento de usuário, e, dispositivo de rede - Google Patents

Método para reduzir artefatos de bloqueio, unidade de filtro de desbloqueio, codificador, decodificador, equipamento de usuário, e, dispositivo de rede Download PDF

Info

Publication number
BR112013015517B1
BR112013015517B1 BR112013015517-5A BR112013015517A BR112013015517B1 BR 112013015517 B1 BR112013015517 B1 BR 112013015517B1 BR 112013015517 A BR112013015517 A BR 112013015517A BR 112013015517 B1 BR112013015517 B1 BR 112013015517B1
Authority
BR
Brazil
Prior art keywords
pixel
pixels
offset
block boundary
pixel value
Prior art date
Application number
BR112013015517-5A
Other languages
English (en)
Other versions
BR112013015517A2 (pt
Inventor
Andrey Norkin
Kenneth Andersson
Rickard Sjöberg
Original Assignee
Velos Media International Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46507326&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BR112013015517(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Velos Media International Limited filed Critical Velos Media International Limited
Publication of BR112013015517A2 publication Critical patent/BR112013015517A2/pt
Publication of BR112013015517B1 publication Critical patent/BR112013015517B1/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/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
    • H04N19/865Methods 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 with detection of the former encoding block subdivision in decompressed video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

filtro de desbloqueio a presente invenção refere-se a artefatos de bloqueio em fronteira de bloco (1) entre um bloco vizinho (20) em um quadro de video que são reduzidos por meio de cálculo de offset com base em valores de pixels (11,13) em uma linha 912) de pixels (11,13,15,17) no bloco (10) e com base em valores de pixels (21,23) em uma linha (12) pixels(13,13,15,17) no bloco (10) e com base em valores de pixels (21,23) em uma linha correspondente(22) de pixels (21,23,25,27) no bloco vizinho (20). o offset é adicionado ao valor de pixel do pixel (11) mais próximo á fronteira de bloco (1) na linha (12) de pixels (11,13,15,17) e é subtraído do valor de pixel 921) mais próximo á fronteira de bloco (1) na linha correspondente (22) de pixels (21,23,25,27). o filtro de desbloqueio posui boas característica de passa -baixa e é eficiente na redução do artefato de bloqueio.

Description

[001] A presente invenção refere-se a uma filtração de desbloqueio para reduzir os artefatos bloqueadores em fronteiras de blocos.
ANTECEDENTES
[002] Os filtros de desbloqueio são utilizados em padrões de codificação de vídeo para combater artefatos bloqueadores. Os artefatos bloqueadores aparecem porque o vídeo original é dividido em blocos que são processados relativamente de maneira independente, os artefatos bloqueadores podem, por exemplo, surgir devido a diferentes predições intra dos blocos, efeitos de quantificação, e offset de movimento. Duas variantes em particular de desbloqueio são descritas abaixo.
Desbloqueio H.264
[003] No estado da técnica de codificação de vídeo, tal como H.264, há um filtro de desbloqueio também denotado como filtro de loop após a predição e reconstrução residual, mas antes do armazenamento da reconstrução para a última referência quando da codificação e decodificação dos quadros subsequentes. A filtração de desbloqueio consiste em várias etapas tais como decisões de filtração, operações de filtração, uma função de clipping e mudanças de valores de pixel. A decisão depende do tipo de monobloco (MB), vetor de movimento (MV) diferença entre blocos vizinhos, se os blocos vizinhos possuem resíduos codificados e da estrutura local dos blocos correntes e/ou vizinhos.
[004] Quando a quantidade de filtração para um pixel depende entre outros da posição daquele pixel em relação ao limite do bloco ou fronteira e do valor de parâmetro de quantificação (QP) utilizado para codificação residual.
[005] A decisão de filtração é baseada na comparação de três diferenças de pixel com três limiares. Os limiares são adaptados ao parâmetro de quantificação (QP). Por exemplo, assumir uma fronteira de bloco vertical de Abcd | efgh onde a, b, c e d denotam os valores de pixel dos pixels de uma fila de pixels no bloco corrente com e, f, g e h denotam os valores de pixel correspondentes aos pixels de uma fila correspondente de pixels no bloco vizinho. Se as condições a seguir forem atendidas a decisão de filtro é positiva, por exemplo, abs(d-e)<thr1, abs(c-d)<thr2 e abs(e-f)<thr2, onde thr1 e thr2 são bases adaptados em QP.
[006] Existem dois modos de filtração H.264. No primeiro modo de filtração, referido como filtração normal, a filtração pode ser descrita comum valor delta com o qual a filtração muda o valor corrente. A filtração para os pixels mais próximos à fronteira de bloco é d = d+delta e e = e-delta onde delta foi destacado (“clipped off”) para um limiar +thr3 para um valor que é restrito pelo QP. Mais filtração é assim conseguida para altos QPs do que baixos QP. A operação de clipping pode ser descrita como delta_clipped = max (thr3, min (thr3, delta)), onde thr3 está controlando a intensidade de filtração. Um valor maior de thr3 significa que a filtração é mais intensa o que significa que um efeito de filtração de passagem baixa irá ocorrer.
[007] A intensidade de filtração pode ser aumentada se qualquer uma das duas condições também é atingida, por exemplo, abs (b-d)<thr2 e abs(e-g)<thr2. A intensidade de filtração é adaptada pelo destaque do delta menos, por exemplo, permitir maior variação.
[008] O segundo modo de filtração referido como filtração intensa, é aplicado para fronteiras intra monobloco apenas quando a condição a seguir é atendida abs(d- e)<thr1/4.
[009] Para maiores informações de filtração de desbloqueio em H.264 é feita referência a List et al. Adaptative Deblocking Filter, IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no 7 July 2003.
Desbloqueio em projeto HEVC
[0010] Na especificação de projeto HEVC (High Efficiency Video Coding) “Test Model under Consideration”, documento ITU-T SG 16 WP3, JCTVC-B205 Chapter 6.5. Em processos de filtros in-loop, o filtro de desbloqueio funciona diferentemente do H.264. A filtração é realizada se pelo menos um dos blocos no lado da fronteira for intra, ou possuir coeficientes não zerados ou a diferença entre os componentes de vetor de movimento dos blocos for maior ou igual a um pixel inteiro. Por exemplo, quando a fronteira de filtração entre os blocos com uma fronteira de bloco vertical de p3i p2i p1i p0i | q0i q1i q2i q3i com pji denotando o valor de pixel de número de pixel j do número de fila i no bloco corrente e qji denota o valor de pixel do número de pixel j do número de fila i no bloco vizinho, i=0,7, j=0, 3, então a condição seguinte deve também ser satisfeita:d = |p22 - 2xp12 + p02| + |q22 - 2xq12 + q02| +|p25 - 2xp15 + p05| + |q25 - 2xq15 + q05|<βonde β depende de QP. Na especificação HEVC acima mencionada, há uma tabela de β, onde β aumenta com QP.
[0011] Se as condições são atendidas e a filtração é realizada entre o bloco corrente e o bloco vizinho um dos dois tipos de filtração é realizada, referida como filtração fraca e forte, respectivamente. A escolha entre a filtração forte e fraca é realizada separadamente para cada linha dependendo das condições seguintes. Para cada linha i=0, 7 a filtração forte é realizada se todas as seguintes condições forem atendidas:d < (β>>2)(|p3i - p0i| + |q0i - q3i|) < (β>>3) |p0i - q0i| < ((5xtC + 1)>>1)onde tC e β dependem de QP e >> denota um operador de deslocamento para a direita.
Filtração fraca em projeto HEVC
[0012] A filtração fraca é realizada com base nas condições acima. A filtração real atua por meio de computação de um offset (Δ), adicionando ao valor de pixel original e destacar a soma para um valor de pixel de saída na faixa de 0-255;Δ = Clip(-tC,tC, (13x(q0i - p0i) + 4x(q1 i - p1i) - 5x(q2i - p2i)+16)>>5))p0i = Clip0-255(p0i + Δ)q0i = Clip0-255(q0i - Δ)p1i = Clip0-255(p1i + Δ/2)q1i = Clip0-255(q1i - Δ/2)onde a função clip Clip (A, B,x) é definido como Clip (A,B,x)=A se x<A, Clip(A,B,x)=B se x>B e Clip (A,B,x)=x se A<x<B e Clip0-255 é definido como Clip(0,255,x).
Filtração forte em projeto HEVC
[0013] O modo de filtração forte é realizado pelas seguintes operações:p0i=Clip0-255((p2i + 2xp1i + 2xp0i +2xq0i + q1i + 4)>>3) q0i=Clip0-255((p1i + 2xp0i + 2xq0i + 2xq1i + q2i + 4)>>3) p1i=Clip0-255((p2i + p1i + p0i + q0i +2)>>2) q1i=Clip0-255((p0i + q0i + q1i + q2i +2)>>2)p2i=Clip0-255((2xp3i + 3xp2i + p1i + p0i + q0i + 4)>>3) q2i=Clip0-255((p0i + q0i + q1i + 3xq2i + 2xq3i + 4)>>3)
[0014] Um problema com o desbloqueio em HEVC é que o filtro fraco não possui boas características de passa-baixa. Pode-se ver que o primeiro e o segundo pixel da fronteira de bloco são modificados pela adição ou subtração de Δ e Δ/2 respectivamente. Este filtro não pode remover altas frequências que podem aparecer próximas à fronteira de bloco e não pode remover o ruído. Além disso, as características de frequência do filtro em HEVC mostram altas amplificações de altas frequências quando da filtração do segundo pixel (p1i e q1i) a partir da fronteira de bloco, que pode resultar em pior desempenho de distorção de taxa (RD) do codificador. Além disso, o offset de pixel, p1i, é igual em magnitude ao offset de pixel, q1i, apesar da estrutura do sinal pode ser diferente em lados diferentes da fronteira de bloco. Portanto, o filtro HEVC não se adapta bem à estrutura local do lado da fronteira de bloco.
[0015] Portanto, há uma necessidade de um filtro de desbloqueio eficiente que pode ser utilizado para reduzir artefatos de bloqueio em fronteiras de bloco e que não possuem os inconvenientes acima mencionados.
SUMÁRIO
[0016] É um objetivo geral combater artefatos de bloqueio entre os blocos de pixels em um quadro de vídeo. Estes e outros objetivos serão alcançados pelas modalidades presentemente descritas.
[0017] Um aspecto das modalidades define um método para redução de artefatos de bloqueio em fronteiras de bloco entre um bloco de pixels e blocos vizinhos em um quadro de vídeo. O método calcula um primeiro offset a ser baseado em (9 x(q0 - p0)- 3x(ql - pl))/16 onde p0 denota um valor de pixel de um pixel mais próximo à fronteira de bloco em uma linha de pixels no bloco, p1 denota um valor de pixel de um pixel mais próximo da fronteira de bloco na linha de pixels. A linha de pixels e a correspondente linha de pixels são perpendiculares à fronteira de bloco. O valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels é modificada por meio de adição ao primeiro offset do valor de pixel para formar um valor de pixel modificado. Correspondentemente, o valor de pixel do pixel mais próximo à fronteira de bloco, mas na linha correspondente de pixels é modificada pela subtração do primeiro offset a partir do valor de pixel. Correspondentemente, o valor de pixel do pixel mais próximo à fronteira de bloco, mas na linha de pixel correspondente é modificada pela subtração do primeiro offset a partir do valor de pixel deste pixel para formar um valor de pixel modificado.
[0018] Em uma modalidade opcional deste aspecto, o primeiro offset é calculado para ser igual a (9x(q0- p0)-3x(q1- p1)+8)>> 4 em que >> denota uma operação de deslocamento para a direita.
[0019] Em uma outra modalidade opcional deste aspecto, o método também compreende destacar o primeiro offset para estar dentro de um intervalo de - tC e tC por meio de ajuste do primeiro offset para ser igual a -tC se o primeiro offset for menor do que - tC e por meio de ajuste de offset para ser igual a tC se o primeiro offset for maior do que tC . Em que tC é o valor limiar que é dependente de um parâmetro de quantificação atribuído ao bloco.
[0020] Uma modalidade opcional deste aspecto, o método também compreende destacar o valor de pixel modificado do pixel mais próximo e a fronteira de bloco na linha de pixels a estar dentro de um intervalo de zero e um valor máximo definido e destacar o valor de pixel modificado do pixel mais próximo à fronteira de bloco na linha correspondente dos pixels a estar dentro de um intervalo de zero e o valor máximo definido. Este destaque opcional é conseguido pelo ajuste do valor de pixel modificado a ser igual a zero se o valor de pixel modificado for menor do que zero e por meio de ajuste do valor de pixel modificado a ser igual ao valor máximo definido se o valor de pixel modificado é maior do que o valor máximo definido.
[0021] Numa modalidade opcional deste aspecto, o método também compreende calcular um segundo offset a ser baseado em (p2+p0-2xp1 +2xΔ)/4 em que p2 denota que um valor de pixel de um segundo pixel mais próximo à fronteira de bloco na linha de pixels e Δ denota o primeiro offset. O método também compreende, nesta modalidade ótima, calcular um terceiro offset a ser baseado em, (q 2 + q 0 - 2 x q1 - 2 xΔ)/4 em que q2 denota um valor de pixel de um segundo pixel mais próximo à fronteira de bloco na linha de pixels correspondente. O valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels é então modificado pela adição do segundo offset do valor de pixel do pixel mais próximo à fronteira de bloco na linha dos pixels para formar um valor de pixel modificado. Correspondentemente, o método também compreende, nesta modalidade ótima, modificar o valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels pela adição do terceiro offset ao valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels correspondente para formar um valor de pixel modificado.
[0022] Em uma modalidade ótima deste aspecto, o segundo offset é calculado para ser igual a (((p2+ p0 +1) >> 1)- p1+Δ)>> 1 , em que >> denota uma operação de deslocamento para a direita e o terceiro offset é calculado para ser igual a (((q2 + q0 + 1) >> 1) - q1 - Δ) >> 1 .
[0023] Em uma modalidade ótima deste aspecto, o método compreende destacar o segundo offset dentro do intervalo de -tC2 e tC2 e destacar o terceiro offset dentro de um intervalo de - tC2 tC2 e, em que tC2 é um valor limiar que é dependente de um parâmetro de quantificação atribuído ao bloco. Este destaque opcional é conseguido por meio de ajuste do segundo ou terceiro offset para ser igual a-tC2 se o segundo ou terceiro offset for menor do que -tC2 e pelo ajuste do segundo ou terceiro offset para ser igual a tC2 se o segundo ou terceiro offset for maior do que tC2.
[0024] Em uma modalidade opcional deste aspecto, o método também compreende destacar (clipping) o valor de pixel modificado do pixel mais próximo à fronteira de bloco na linha de pixels dentro de um intervalo de zero e um valor máximo definido e destacar o valor de pixel modificado do próximo pixel mais próximo à fronteira de bloco na linha de pixels correspondente dentro de um intervalo de zero e o valor máximo definido. Este destaque opcional é conseguido por meio de ajuste do valor de pixel modificado para ser igual a zero se o valor de pixel modificado for menor do que zero por meio de ajuste do valor de pixel modificado para ser igual ao valor máximo definido se o valor de pixel modificado for maior do que o valor máximo definido.
[0025] Em uma modalidade opcional deste aspecto, o método também compreende calcular um quarto offset a ser baseado em (p3+ p1-2x p2+2xΔp1)/4, em que p3 denota um valor de pixel terceiro mais próximo à fronteira de bloco na linha de pixels e Δp1 denota o segundo offset. Este método também compreende, em uma modalidade opcional, calcular um quinto offset a ser baseado em (q3 + ql -2xq2 + 2xΔqi)/4, em que q3 denota um valor de pixel de um pixel terceiro mais próximo à fronteira de bloco na correspondente linha de pixels e Δqi denota o terceiro offset. O valor de pixel do pixel segundo mais próximo à fronteira de bloco na linha de pixels é modificado pela adição do quarto offset ao valor de pixel do pixel segundo mais próximo à fronteira de bloco na linha de pixels para formar um valor de pixel modificado. O método também compreende, nesta modalidade ótima, modificar o valor de pixel do pixel segundo mais próximo à fronteira de bloco na linha de pixels para formar um valor de pixel modificado. O método também compreende, nesta modalidade opcional, modificar o valor de pixel do pixel segundo mais próximo à fronteira de bloco na linha correspondente de pixels pela adição do quarto offset ao valor de pixel do pixel segundo mais próximo à fronteira de bloco na linha correspondente de pixels para formar um valor de pixel modificado.
[0026] Em uma modalidade opcional deste aspecto, o quarto offset é calculado para ser igual a (((p3+ p1+1)>> 1)- p2+Δp1)>> 1 em que >> denota uma operação de deslocamento para a direita e o quinto offset é calculado para ser igual a (((q3 + q1 + 1) >> 1) - q2 + Δq1 ) >> 1 .
[0027] Em uma modalidade opcional deste aspecto uma unidade de filtro de desbloqueio calcula o primeiro offset a ser baseado em (9x(q0- p0)-3x(q1- p1))/16 . A unidade de filtro de desbloqueio modifica o valor do pixel mais próximo à fronteira de pixel na linha de pixels por meio de adição do primeiro offset ao valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels para formar um valor de pixel modificado. A unidade de filtro de desbloqueio também modifica o valor de pixel do pixel mais próximo à fronteira de bloco na linha correspondente de pixels subtraindo o primeiro offset do valor de pixel do pixel mais próximo à fronteira de bloco na linha correspondente de pixels para formar um valor de pixel modificado.
[0028] Um outro aspecto das modalidades define uma unidade de filtro de desbloqueio para reduzir artefatos de bloqueio e uma fronteira de bloco entre um bloco de pixels e um bloco de pixels vizinho em um quadro de vídeo. A unidade de filtro de desbloqueio compreende um calculador de offset configurado para calcular um primeiro offset a ser baseado em (9x(q0- p0)-3x(q1- p1)) / 16 , em que p0 denota um valor de pixel de um pixel mais próximo à fronteira de bloco em uma linha de pixels, p1 denota um valor de pixel de um pixel mais próximo à fronteira de bloco na linha de pixels, q0 denota um valor de pixel de um pixel mais próximo à fronteira de bloco em uma linha de pixel correspondente no bloco vizinho e q1 denota um valor de pixel de um pixel mais próximo à fronteira de bloco na linha de pixels correspondente. A linha de pixels e a linha de pixels correspondente são perpendiculares à fronteira de bloco. A unidade de filtro de desbloqueio também compreende um modificador de valor de pixel configurado para modificar o valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels adicionando o primeiro offset ao valor de pixel neste pixel para formar um valor de pixel modificado. O modificador de valor de pixel é também configurado para modificar o valor de pixel do pixel mais próximo à fronteira de bloco, mas na linha correspondente de pixels subtraindo o primeiro offset do valor de pixel para formar um valor de pixel.
[0029] Em uma modalidade ótima deste aspecto, o calculador de primeiro offset é configurado para calcular o primeiro offset para ser igual a (9x(q0-p0)-3x(q1 -p1)+ 8)>>4, em que >> denota uma operação de deslocamento para a direita.
[0030] Em uma modalidade ótima deste aspecto, a unidade de filtro de desbloqueio compreende uma primeira unidade de destaque configurado para destacar o primeiro offset para estar dentro de um intervalo de - tC e tC por meio de ajuste do primeiro offset para ser igual a - tC se o primeiro offset for menor do que - tC e por meio de ajuste do primeiro offset para ser igual a tC se o primeiro offset for maior do que tC , em que tC é o valor limiar que é dependente de um parâmetro de quantificação atribuído para o bloco.
[0031] Em uma modalidade ótima deste aspecto, a unidade de filtro de desbloqueio compreende uma segunda unidade de destaque configurada para destacar o valor de pixel modificado do pixel mais próximo à fronteira de bloco na linha de pixels dentro de um intervalo de zero e um valor máximo definido, e destacar o valor de pixel modificado do pixel mais próximo à fronteira de bloco na linha correspondente de pixels dentro de um intervalo de zero e o definido como valor máximo. Este destaque opcional por meio da segunda unidade de destaque ótima é conseguido por meio de ajuste de valor de pixel modificado para ser igual a zero se o valor de pixel modificado for menor do que zero e por meio de ajuste do valor de pixel modificado para ser igual ao valor definido como máximo se o valor de pixel modificado for maior do que o valor definido como máximo.
[0032] Em uma modalidade opcional deste aspecto, a unidade de filtro de desbloqueio compreende um calculador de segundo offset configurado para calcular um segundo offset a ser baseado em (p 2 + p 0 - 2 x p1 + 2 xΔ)/4, em que p 2 denota um valor de pixel de um pixel segundo mais próximo à fronteira de bloco na linha de pixels e Δ denota o primeiro offset. A unidade de filtro de desbloqueio também compreende, nesta modalidade ótima, um calculador de terceiro offset configurado para calcular um terceiro offset a ser baseado em (q 2 + q 0 - 2 x ql - 2 xΔ)/4, em que q2 denota um valor de pixel de um pixel segundo mais próximo à fronteira de blocos na linha de pixels correspondente. Nesta modalidade ótima, o modificador de valor de pixel é configurado para modificar o valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels por meio de adição do segundo offset ao valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels para formar um offset para o valor de pixels próximo à fronteira de bloco na linha de pixels para formar um valor de pixel modificado e para modificar o valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels correspondente por meio de adição do terceiro offset ao valor de pixel do pixel mais próximo à fronteira de bloco na linha correspondente de pixels para formar um valor de pixel modificado.
[0033] Em uma modalidade ótima deste aspecto, o calculador de segundo offset é configurado para calcular o segundo offset para ser igual a (((p2+p0+1) >> 1)- p1+Δ)>> 1 , em que >> denota uma operação de deslocamento para a direita e o calculador de terceiro offset é configurado para calcular o terceiro offset para ser igual a (((q2 + q0 +1) >> 1)-q1-Δ)>> 1 .
[0034] Em uma modalidade ótima deste aspecto, a unidade de filtro de desbloqueio uma terceira unidade de destaque configurada para destacar o segundo offset dentro de um intervalo de -tC2e tC2 , e destacar o terceiro offset dentro de um intervalo de -tC2e tC2 , em que tC2 é um valor limiar que é dependente de um valor de parâmetro de quantificação atribuído ao bloco. Este destaque opcional por meio da terceira unidade de destaque opcional é conseguido por meio de ajuste do segundo ou terceiro offset para ser igual a -tC2 se o segundo ou terceiro offsets forem menores que -tC2e por meio de ajuste do segundo ou terceiro offset para serem iguais a tC2 se o segundo e terceiro offsets for maior do que tC2 .
[0035] Em uma modalidade ótima deste aspecto, a unidade de filtro de desbloqueio compreende uma segunda unidade de destaque configurada para destacar um valor de pixel modificado do pixel mais próximo à fronteira de bloco na linha de pixels dentro de um intervalo de zero e um valor máximo definido, e destacar o valor de pixel modificado do pixel mais próximo à fronteira de bloco na linha correspondente de pixels dentro de um intervalo de zero e o valor máximo definido. Este destaque opcional por meio da segunda unidade de destaque opcional é conseguido pelo ajuste do valor de pixel modificado para ser igual a zero se o valor de pixel modificado for menor do que zero e por meio de ajuste do valor de pixel modificado para ser igual ao valor máximo definido se o valor de pixel modificado é maior do que o valor máximo definido.
[0036] Em uma modalidade opcional deste aspecto, a unidade de filtro de desbloqueio compreende um calculador de quarto offset configurado para calcular um quarto offset a ser baseado em, em que denota um valor de pixel de um pixel terceiro mais próximo à fronteira de bloco na linha de pixels e Δpi denota o segundo offset. A unidade de filtro de desbloqueio também compreende, nesta modalidade ótima, um calculador de quarto offset configurado para calcular um quarto offset com base em (q 3 + qi - 2 x q 2 + 2 xΔ qi )/4, em que q 3 denota um valor de pixel de um pixel terceiro mais próximo à fronteira de bloco na linha correspondente de pixels e Δq1 denota o terceiro offset. Nesta modalidade opcional o modificador de valor de pixel é configurado para modificar o valor de pixel do pixel segundo mais próximo à fronteira de bloco na linha de pixels pela adição do quarto offset para o valor de pixel do pixel segundo mais próximo à fronteira de bloco na linha de pixels para formar um valor de pixel modificado, e modificar o valor de pixel do pixel segundo mais próximo à fronteira de bloco na correspondente linha de pixels por meio de adição do quinto offset ao valor de pixel do pixel segundo mais próximo à fronteira de bloco na correspondente linha de pixels para formar um valor de pixel modificado.
[0037] Em uma modalidade opcional deste aspecto, o calculador de quarto offset é configurado para calcular o quarto offset para ser igual a (((p3+pi+i) >> i)- p2+Δpi)>> i, em que >> denota uma operação de deslocamento para a direita e o calculador de quinto offset é configurado para calcular o quinto offset para ser igual a (((q3 + qi+i) >> i)- q2+Δqi)>> i.
[0038] Outros aspectos das modalidades definem um codificador e um decodificador respectivamente, compreendendo uma unidade de filtro de desbloqueio conforme definido acima.
[0039] Além disso, um aspecto das modalidades define um equipamento de usuário que compreende uma memória configurada para quadros de vídeo codificado armazenado, um decodificador conforme definido acima configurado para decodificar os quadros de vídeo codificado e um executor de mídia (ou media player) configurado para proporcionar os quadros de vídeo decodificados como dados de vídeo que é apresentável em um mostrador (display).
[0040] Um outro aspecto define um dispositivo de rede sendo ou pertencente a um nó de rede em uma rede de comunicação entre uma unidade de envio e um equipamento de recepção de usuário. O dispositivo de rede compreende um codificador e/ou um decodificador conforme definido acima.
[0041] Um outro aspecto das modalidades define um programa de computador para reduzir artefatos de bloqueio em uma fronteira de bloco entre um bloco de pixels e um bloco de pixels vizinho em um quadro de vídeo. O programa de computador compreende meios de código que quando executado em computador faz com que o computador calcule um offset para ser baseado em (9 x(q0 - p0)- 3 x(q1 - pl))/16, em que p0 denota um valor de pixel de um pixel mais próximo à fronteira de bloco em uma linha de pixels no bloco, p1 denota um valor de pixel de um pixel mais próximo à fronteira de bloco na linha de pixels, q0 denota um valor de pixel de um pixel mais próximo à fronteira de bloco em uma linha de pixels correspondente no bloco vizinho e q1 denota um valor de pixel de um pixel mais próximo à fronteira de bloco na linha de pixels correspondente. A linha de pixels e a linha correspondente são perpendiculares à fronteira de bloco. O computador é também levado a modificar o valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels por meio da adição do offset ao valor de pixel deste pixel. O meio de código também faz com que o computador modifique o valor de pixel do pixel mais próximo para a fronteira de bloco na linha de pixel correspondente por meio da subtração do offset do valor de pixel deste pixel.
[0042] Ainda um outro aspecto das modalidades define um produto de programa de computador compreendendo um meio de código legível em um programa de computador conforme definido acima armazenado nos meios legíveis por computador.
[0043] As presentes modalidades permitem uma redução eficiente nos artefatos de bloqueio e também possuem boas características de baixa-passagem.
BREVE DESCRIÇÃO DAS FIGURAS
[0044] A invenção, juntamente com outros objetivos e vantagens, pode ser melhor entendida por meio de referência à descrição seguinte tomada juntamente com as figuras apensas em que:a figura 1 ilustra um fluxograma que mostra um método para redução de artefatos de bloqueio de acordo com uma modalidade;as figuras 2A e 2B mostram duas modalidades de blocos vizinhos e uma fronteira de bloco sobre os quais a filtração de bloqueio pode ser aplicada.a figura 3 ilustra um fluxograma que mostra etapas adicionais opcionais do método da figura 1 de acordo com uma modalidade;a figura 4 ilustra um fluxograma que mostra etapas adicionais opcionais do método das figuras 1 a 5 de acordo com uma modalidade;a figura 5 ilustra um fluxograma que mostra etapas adicionais opcionais do método da figura 1 de acordo com uma outra modalidade;a figura 6 ilustra um fluxograma que mostra etapas adicionais opcionais do método na figura 5 de acordo com uma modalidade;a figura 7 ilustra um fluxograma que mostram etapas adicionais opcionais do método da figura 5 de acordo com uma outra modalidade; a figura 8 ilustra um diagrama de blocos esquemático de uma unidade de filtro de desbloqueio de acordo com uma modalidade;a figura 9 ilustra um diagrama de blocos esquemático de uma unidade de filtro de desbloqueio de acordo com uma outra modalidade;a figura 10 ilustra um diagrama de blocos esquemático de uma implementação de software de um módulo de filtro de desbloqueio em um computador de acordo com uma modalidade;a figura 11 é um diagrama de blocos esquemático de um codificador de acordo com uma modalidade;a figura 12 ilustra um diagrama de blocos esquemático de um decodificador de acordo com uma modalidade;a figura 13 ilustra um diagrama de blocos esquemático de um equipamento de usuário de acordo com uma modalidade; ea figura 14 ilustra uma vista geral esquemática de uma porção de uma rede de comunicação que compreende um dispositivo de rede de acordo com uma modalidade.
DESCRIÇÃO DETALHADA
[0045] Por meio de figuras, os mesmos numerais de referência são utilizados para elementos similares ou correspondentes.
[0046] As modalidades geralmente referem-se a filtração de desbloqueio para combater artefatos de bloqueio sobre fronteiras de blocos em um quadro de vídeo. As modalidades utilizam um filtro de desbloqueio que possui boas características de frequência. O presente filtro de desbloqueio é configurado não para modificar os valores de pixel sobre uma fronteira de bloco se estes valores de pixel formem uma rampa, mas suavizar os valores de pixel se estes estiverem, em vez disso, na forma de uma etapa. Isto implica que o filtro de desbloqueio terá boa características de baixa-passagem e pode remover altas frequências que podem aparecer próximas à fronteira de bloco.
[0047] A figura 1 é um fluxograma de um método de redução de artefatos de bloqueio em uma fronteira de bloco entre um bloco de múltiplos pixels e um bloco vizinho de múltiplos pixels em um quadro de vídeo, de acordo com uma modalidade. Como é bem conhecido na arte, um quadro de vídeo é dividido em blocos não sobreponíveis de pixels que são codificados e descritos de acordo com os vários modos de codificação intra e inter disponíveis.
[0048] Geralmente, um quadro de vídeo é dividido em macroblocos não sobreponíveis de 16x16 pixels. Este macrobloco pode por sua vez ser dividido em blocos menores de tamanhos diferentes, tal como 4x4 ou 8x8 pixels. Entretanto, blocos também retangulares poderiam ser possíveis de acordo com as modalidades tal como 4x8, 8x4, 8x16 ou 16x8. As modalidades podem ser aplicadas a quaisquer blocos de pixels, incluindo macroblocos ou blocos de pixels ainda maiores.
[0049] Em padrão emergente de Alta Eficiência de Codificação de Vídeo (HEVC) unidades de codificação (UC), unidades de predição, (PU) e unidades de transformação (TU) são utilizadas. As unidades de predição são definidas dentro de uma unidade de codificação e contêm modos de predição intra ou inter. As unidades de transformação são definidas dentro de uma unidade de codificação e o maior tamanho de transformação é de 32x32 pixels e o menor tamanho de é de 4x4 pixels. O tamanho UC varia correntemente de 64x64 pixels (o maior) a 4x4 pixels (o menor). Desta forma, o maior UC pode ser dividido em UCs menores com o “nível de granulação” dependendo das características locais do quadro. Isto significa que o maior UC pode ser dividido em UCs menores de tamanhos diferentes. As modalidades podem também ser utilizadas em conexão com tais unidades de codificação, que são vistas como sendo englobadas pela expressão “blocos de pixels” como é utilizado presentemente.
[0050] Cada pixel no bloco possui um valor de pixel respectivo. Quadros de video geralmente possuem valores de coloração atribuídos para os pixels, onde os valores de cor são representados em um formato de cor definido. Um dos formatos de cor comuns utiliza um componente de luminância e dois componentes de crominância para cada pixel apesar de existirem outros formatos, tal como utilizando componentes vermelho, verde e azul para cada pixel.
[0051] Tradicionalmente, a filtração de componente de luminância e filtração de componente de crominância são realizadas separadamente possivelmente empregando diferentes decisões de filtração e diferentes filtros de desbloqueio, embora seja possível que as decisões de filtração de luminância sejam utilizadas em filtração chroma, como em HEVC. As modalidades podem ser aplicadas para filtrar o componente de luminância, filtrar o componente de crominância ou filtrar ambos, componente de luminância e o componente de crominância. Em uma modalidade particular, as modalidades são aplicadas para conseguir luminância ou filtração luma. Em uma modalidade particular, as modalidades são aplicadas para conseguir luminância ou filtração luma. As decisões de filtração, ou partes de decisões de filtração par um componente, tal como luma, podem ser então utilizado quando é tomada as decisões de filtração para outros componentes tal como chroma.
[0052] A filtração de desbloqueio é conduzida sobre uma fronteira, extremo ou limite entre blocos vizinhos. Como consequência, tais fronteiras podem ser fronteiras verticais 1, ver figura 2A, entre dois blocos vizinhos 10, 20 presentes lado a lado no quadro de vídeo. Alternativamente, as fronteiras são fronteiras horizontais 1, ver figura 2B, entre dois blocos vizinhos 10, 20, onde um bloco 10 é posicionado acima de outro bloco 20 no quadro de vídeo. Em uma modalidade particular, fronteiras verticais são filtradas primeiro partindo de uma fronteira mais a esquerda e procedendo através das fronteiras em direção ao lado da mão direita em suas ordens verticais. Então as fronteiras são filtradas partindo com a fronteira no topo e procedendo através das fronteiras em direção ao fundo de suas ordens geométricas. As modalidades são, entretanto, não limitadas a esta ordem de filtração particular e pode realmente ser aplicada a qualquer ordem de filtração definida. Em uma modalidade particular, as fronteiras na extremidade do quadro de vídeo são preferivelmente não filtradas e assim sendo excluídas da filtração de desbloqueio.
[0053] O método desta modalidade inicia-se na etapa S1 onde um primeiro offset ou delta é calculado para uma linha 12 de pixels 11, 13, 15, 17 no bloco 10. De acordo com as modalidades, este primeiro offset é calculado com base em (9x(q0- pθ)-3x(ql - pl))/16, em que p0 denota o valor de pixel do pixel 11 mais próximo da fronteira de bloco 1 na linha 12 de pixels 11, 13, 15, 17 no bloco 10, p1 denota o valor de pixel do pixel 13 mais próximo à fronteira de bloco 1 na linha 12 de pixels 11, 13, 15, 17, q0 denota o valor de pixel do pixel 21 mais próximo da fronteira de bloco 1 em uma linha correspondente ou oposta 22 de pixels 21, 23, 25, 27 em um bloco vizinho 20 e q1 denota o valor de pixel do pixel 23 mais próximo da fronteira de bloco 1 na linha 22 correspondente de pixels 21, 23, 25, 27.
[0054] A linha 12 de pixels 11, 13, 15, 17 no bloco 10 e a linha correspondente 22 de pixels 21, 23, 25, 27 no bloco vizinho 20 pertencente à mesma linha horizontal de pixels, i.e., coluna de pixels se estendendo sobre uma fronteira horizontal 1 , ver figura 2b. Então, a linha 12 de pixels 11, 13, 15, 17 e a linha correspondente 22 de pixels 21, 23, 25, 27 são perpendiculares à fronteira de bloco 1, entre o bloco 10 e os blocos vizinhos 20. Além disso, a linha 12 de pixels 11, 13, 15, 17 no bloco 10 e a linha correspondente 22 de pixels 21, 23, 25, 27 no bloco vizinho 20 possui o mesmo número de linha. Por exemplo, se o bloco 10 e o bloco vizinho 20 cada um compreende N, tal como oito filas ou colunas de pixels, tendo números de fila ou coluna i=0...N-1 então a linha 10 de pixels 11, 13, 15, 17 possuem número de linha i no bloco 10 e a linha correspondente 20 de pixels 21, 23, 25, 27 também possui número de linha i, mas no bloco vizinho 20. Então a linha 12 de pixels 11, 13, 15, 17 no bloco e a linha correspondente 22 de pixels 21, 23, 25, 27 no bloco vizinho 20 são linhas opostas com vistas à fronteira de bloco 1.
[0055] De acordo com as modalidades “linha de pixels” e “linha de pixels correspondente” são empregadas para denotar “fila de pixels” e “fila correspondente de pixels” no caso de fronteira de bloco vertical como na figura 2A e denota uma “coluna de pixels” e uma “coluna correspondente de pixels” no caso de uma fronteira de bloco horizontal como na figura 2B.
[0056] A etapa seguinte S2 modifica o valor de pixel do pixel 11 mais próximo à fronteira de bloco 1 na linha 12 dos pixels 11, 13, 15, 17 por meio de adição do primeiro offset calculado na etapa S1 ao valor de pixel deste pixel 11 para formar um valor de pixel modificado p0'. Então, o valor de pixel modificado p0' para este pixel é p0' = p0 + Δ, em que Δ denota o primeiro offset da etapa S1. Correspondentemente, o valor de pixel do pixel 21 mais próximo da fronteira de bloco 1, mas na linha correspondente 22 de pixels 21, 23, 25, 27 no bloco vizinho 20 é modificado na etapa S3 subtraindo o primeiro offset do valor de pixel deste pixel 21 para formar um valor de pixel modificado q0' . O valor de pixel modificado q0' é, portanto, calculado como q0' = q0 -Δ .
[0057] A modificação do valor de pixel para o pixel 11 mais próximo à fronteira de bloco 1 na linha 12 de pixels 11, 13, 15, 17 no bloco 10 na etapa S2 e a modificação do valor de pixel para o pixel 21 mais próximo à fronteira de bloco 1 na linha correspondente 22 de pixels 21, 23, 25, 27 no bloco vizinho 20 na etapa S3 pode ser realizado serialmente conforme ilustrado na figura 1 ou serialmente, mas na ordem oposta, i.e., na etapa S3 antes da etapa S2. Alternativamente, as duas etapas S2 e S3 podem ser realizadas pelo menos parcialmente em paralelo.
[0058] O método ilustrado na figura 1 e incluindo as etapas S1 a S3 reduz artefatos de bloqueio na fronteira de bloco 1 por meio de processamento de pixels em uma linha 11 de pixels 11, 13, 15, 17 no bloco e também na linha correspondente 22 de pixels 21, 23, 25, 27 no bloco vizinho 20. Então, a modificação de pixel pode ser realizada para uma das linhas (horizontal ou vertical) 12 no bloco 10 ou para múltiplas, i.e., pelo menos duas linhas 12 no bloco 10, possivelmente para todas (horizontal e vertical) linhas 12 no bloco 10. Então é esquematicamente ilustrado pela linha L1.
[0059] Geralmente, e isto foi discutido anteriormente, a filtração de desbloqueio envolve decisões de filtro que determina se um filtro de desbloqueio é para ser aplicado sobre uma fronteira de bloco horizontal ou vertical para um bloco. Se uma decisão é positiva o filtro de desbloqueio é então possivelmente aplicado em todas as colunas (linhas verticais) ou filas (linhas horizontais) do bloco. Alternativamente, outras decisões de filtração são tomadas para cada coluna ou fila para decidir se o filtro de desbloqueio é para ser aplicado ou não e/ou que tipo de filtro de desbloqueio para uso para esta coluna ou fila em particular. Portanto, o método conforme ilustrado na figura 1 poderia ser pelo menos uma fila em um bloco de pixels no quadro de vídeo. Deve ser também antecipado que a filtração de desbloqueio não necessariamente tem que ser aplicado em todos os blocos no quadro de vídeo. Em claro contraste, a filtração de desbloqueio é preferivelmente aplicado apenas para os blocos e sobre fronteiras de blocos onde existem artefatos de bloqueio como determinado por uma ou mais decisões de filtro.
[0060] A filtração de desbloqueio será agora descrito presentemente em conexão com várias modalidades de implementação.
[0061] O destaque do primeiro offset pode ser realizado em uma modalidade para, desta forma, restringir o valor do primeiro offset para estar dentro de um intervalo de - tC e tC , o valor limiar tC é preferivelmente dependente de um valor de parâmetro de quantificação (QP) atribuído para o bloco. Neste caso, uma tabela de diferentes valores limiares para diferentes valores de QP poderiam ser utilizados. A Tabela 1 listada abaixo é um exemplo desta tabela.
Figure img0001
[0062] As presentes modalidades são, entretanto, não limitadas à relação particular entre tC e QP conforme mostrado na tabela 1, mas poderia em vez disso, determinar o valor tC para com base no valor QP para o bloco em alguma outra forma.
[0063] A figura 3 ilustra esta ação de destaque. O método então continua da etapa S1 da figura 1. Uma etapa seguinte S10 investiga se o primeiro offset está dentro do intervalo - tC e tC, i.e., se - tC < Δ < tC , neste caso, o método continua para a etapa S2 da figura 1 e nenhuma modificação do primeiro offset é requerida. Entretanto, se o primeiro offset não estiver dentro do intervalo como determinado na etapa S10, o método continua para a etapa S11 onde o primeiro offset é destacado para ter um valor dentro do intervalo. Então se Δ< - tC, então o primeiro offset é ajustado para ter um valor de tC na etapa S11, o método então continua na etapa S2 da figura 2.
[0064] Correspondentemente, os valores de pixel modificado calculado nas etapas S2 e S3 da figura 1, poderiam ser destacados para estar dentro de um intervalo permitido. Isto é esquematicamente ilustrado abaixo pelo fluxograma da figura 4. O método então continua da etapa S2 ou S3 na figura 1 e uma segunda etapa S20 investiga se o valor de pixel modificado, i.e., p0' ou q0' , estiver dentro de um intervalo permitido 0 e M. O parâmetro M denota um valor máximo definido que os valores de pixel modificado pode assumir. Em uma modalidade particular, este valor máximo é definido com base no número de bits que são gastos nos valores de pixel. Então é assumido que os valores de pixel estão na forma de um valor m-bit, então M é preferivelmente igual a 2m-1. Por exemplo, se cada valor de pixel for um valor de 8-bit, i.e., m=8, então M=255. A etapa S20, portanto, investiga se 0 < p0'< M ou 0 < q0'< M . Se o valor de pixel modificado estiver dentro do intervalo [0,M], o método continua na etapa S3 na figura 1 ou é encerrado. Entretanto, se o valor de pixel modificado estiver fora do intervalo, este é destacado na etapa S21 para ter um valor dentro do intervalo. Entre outras palavras, se p0'< 0 ou q0'< 0 , então o valor de pixel modificado é ajustado na etapa S21 para ser p0'= 0 ou q0'= 0 . Correspondentemente, se p0'> M ou q0'> M então a etapa S21 ajusta o valor de pixel modificado para ser p0'= M ou q0'= M .
[0065] A etapa S1 da figura 1 calcula o primeiro offset para ser baseado em (9x(q0- p0)-3x(ql - pl))/l6. Em uma modalidade particular, o primeiro offset é calculado na etapa S1 para ser igual a (9 x(q0 - p0)- 3 x(ql - pl))/l6. Em uma modalidade, os valores de pixel são, portanto, atualizados pelo filtro de desbloqueio proposto utilizando os seguintes cálculos: Δ = (9 x(q0 - p0)- 3 x(ql - pl))/16 q 0' = q 0 -Δ
[0066] O destaque do primeiro offset e/ou os valores de pixel modificado conforme ilustrado na figuras 3 e 4 podem também ser utilizados.
[0067] Em uma modalidade alternativa, o offset calculado como uma função de (9x(q0- p0)-3x(ql- pl))/l6 . Esta função poderia então ser definida de modo que o cálculo do primeiro offset seja eficientemente realizado em hardware. Neste caso, é geralmente preferido não ter quaisquer divisões e/ou definir a função de modo que o primeiro offset será um valor inteiro. Em uma modalidade, (x+8)>>4 é utilizado como uma expressão inteira de x/16, onde >> denota uma operação de deslocamento para a direita. Então, em uma modalidade particular S1 calcula o primeiro offset a ser baseado em e preferivelmente igual a (9x(q0- p0)-3x(ql-pl)+8) >> 4 .
[0068] Nesta modalidade, os valores pixel são, portanto, atualizados pelo filtro de desbloqueio proposto utilizando os cálculos a seguir:Δ = (9x(q0- p0)-3x(ql- pl) + 8)>> 4q 0' = q 0 -ΔOu se o destaque é utilizado:Δ = Clip3(- tc, tc, (9 x (q0 - p0) - 3x (ql - pl)+ 8) >> 4)p 0' = Clip (p 0 + Δ)q 0' = Clip (q 0 -Δ) em que Clip3(A, B, x) é definido como Clip3(A, B,x)=se x<A, Clip3(A,B,x)=B, se x>B e Clip3(A,B,x)=x se A<x<B e Clip3(A,B,x) é definido com Clip(0, M, x).
[0069] Em modalidades alternativas, outras implementações, como inteiro são utilizadas representações de (9 x(q0 - p0)- 3 x(ql - pl))/16 e preferivelmente representações de inteiros que são eficientemente implementados em hardware.
[0070] As modalidades acima descritas definem um filtro de desbloqueio que gera um primeiro offset para pixels mais próximos à fronteira de bloco com uma fórmula que produz aproximadamente zero, preferivelmente exatamente zero, quando aplicada a uma rampa de valores de pixel e que produz um valor de offset que suaviza uma etapa nos valores de pixel quando aplicada em uma etapa de valores de pixel. Por exemplo, uma rampa pode ser descrita como linearmente crescente ou decrescente para valores de pixel, por exemplo, 10, 20, 30, 40. Quando calculado o primeiro offset para estes valores de pixel, i.e., p1 = 10, p0 = 20, q0=30, q1=40, o primeiro offset será zero. Correspondentemente, uma etapa pode ser descrita como uma etapa de crescimento ou de decrescimento em valores de pixel, por exemplo, 10,10, 20,20. Quando calculado o primeiro offset para estes valores de pixel, i.e., p1=10, p0=10, q0=20, q1=20, o primeiro offset será 3,75 se Δ = (9x(q0- p0)-3x(ql- pl))/16ou 4 se Δ = (9x(q0- p0)-3x(ql- p1)+ 8)>> 4 . Os valores de pixel modificados serão então 10, 13, 75, 16, 25, 30 ou 10, 14, 16, 20 e, desta forma, uma suavização da etapa será conseguida. O primeiro offset é também zero para uma linha reta, i.e., se os valores de pixel forem iguais a p0=p1=q0=q1.
[0071] Em uma modalidade particular, também os valores de pixel de pixels mais próximos à fronteira de bloco podem ser modificados. Isto é descrito também presentemente com referência às figuras 2A, 2B e 5. O método então continua da etapa S3 da figura 1 ou da etapa S2 ou ainda etapa S1. Uma etapa seguinte S30 calcula um segundo offset para ser baseado em (p 2 + p 0 - 2 x pl + 2 xΔ)/4, em que p2 denota o valor de pixel do pixel 15 segundo mais próximo à fronteira de bloco 1 na linha 12 de pixels 11, 13, 15, 17 no bloco 10. Uma etapa seguinte S31 calcula um terceiro offset a ser baseado em (q2+q0-2xq1- 2xΔ)/4, em que q2 denota o valor de pixel do pixel 25 segundo mais perto da fronteira de bloco 1 na linha correspondente 22 de pixels 21, 23, 25, 27 no bloco vizinho 20. As etapas S30 e S31 podem ser realizadas sequencialmente em qualquer ordem ou pelo menos parcialmente em paralelo.
[0072] O segundo offset calculado na etapa S30 é utilizado na etapa S32 para modificar o valor de pixel do pixel 13 mais próximo à fronteira de bloco 1 na linha 12 de pixels 11, 13, 15, 17. Em uma modalidade, o segundo offset é adicionado ao valor de pixel deste pixel 13 para obter um valor de pixel modificado. Correspondentemente, a etapa S33 modifica o valor de pixel do pixel 23 mais próximo à fronteira de bloco 1 na linha correspondente 22 de pixels 21, 23, 25, 27 por meio de adição do terceiro offset ao valor de pixel deste pixel 23 para formar um valor de pixel modificado. As etapas S32 e S33 podem ser realizadas em qualquer ordem sequencial de pelo menos parcialmente em paralelo.
[0073] O filtro de desbloqueio proposto é nesta modalidade, um filtro de baixa-passagem em todas as posições de filtro p0, p1, q0, q1. Quando aplicado a um sinal de rampa, o filtro de desbloqueio não irá ser modificado se tendo em vista que Δ, Δp, Δq serão todos iguais a zero, em que Δp denota o segundo offset e denota o terceiro offset. Quando aplicado a um sinal de etapa, i.e., um artefato de desbloqueio, o filtro de desbloqueio será suave se, i.e., reduzir o artefato de bloqueio. Em contaste claro com o filtro HEVC corrente, o filtro de desbloqueio proposto será suave e desta forma irá atenuar pequenas ondulações da fronteira de bloco.
[0074] Na modalidade descrita acima, os filtros para os coeficientes que permanecem na segunda posição a partir da fronteira de bloco (p1, q1) são produzidos utilizando uma combinação do primeiro offset e um filtro passa-baixa. Uma vantagem desta modalidade é que os coeficientes para os pixels segundo mais próximos à fronteira de bloco podem ter diferentes valores que permitem uma melhor adaptação local.
[0075] De maneira similar à primeira modalidade, os segundo e terceiro offsets podem ser destacados para estarem dentro de um intervalo de -tC2 e tC2 , onde o valor limiar é tC2 determinado com base no valor QP atribuído para o bloco.
[0076] Em uma modalidade particular o valor limiar tC2 é determinado com base no valor limiar tC utilizado para destacar o primeiro offset na figura 3. Por exemplo,tCtc2 = -2- ou com uma implementação de hardware adaptado tc2 = tc >> 1.
[0077] A figura 6 ilustra um fluxograma que mostra um destacamento ou clipping dos segundo e terceiro offsets. O método continua da etapa S30 ou S31 da figura 5. A etapa seguinte S40 investiga se o segundo ou terceiro offset está dentro do intervalo de - tc2 e tc2 . Se isto for verdade, o método continua na etapa S32 ou S33 da figura 5. Se o segundo ou terceiro offset for menor do que -tc2ou maior do que tc2o método continua para a etapa S41. Esta etapa S41 destaca o segundo ou terceiro offset para ser -tc2 seΔp,q < -tc2 ou ajustar o segundo ou terceiro offsets para tc2 se Δp,q > tc2 .
[0078] Os valores de pixel modificados dos pixels mais próximos à fronteira de bloco são preferivelmente destacados para estarem dentro do intervalo de 0 e M em similaridade aos valores de pixel acima mencionados para os pixels mais próximos à fronteira de bloco. Então, as etapas de método da figura 4 podem ser adaptadas também para estes pixels par forçar os valores de pixel a estarem dentro de [0,M].
[0079] Em uma modalidade, os valores de pixel modificados 13, 23 mais próximos à fronteira de bloco 1 são calculados como:Δ p =( p 2 + p 0 - 2 x pl + 2 xΔ)/4p1' = p1 + Δ pΔq =(q2+q0-2xq1-2xΔ)/4q1'=q1+Δq
[0080] Opcionalmente destacando os segundo e terceiro offsets e/ou os valores de pixel modificados como descritos acima são utilizados.
[0081] Em uma modalidade alternativa, as computações destes offsets poderiamser realizadas para serem independentes uma da outra.Δ=(9x(q0-p0)-3x(q1-p1)+8)>>4p0' = p0 + Δq0'=q0-ΔΔp = (p0 + p2 - 2x p1)/ 4p1'= p1+Δp +Δ/2Δq = (q0+ q2- 2xq1)/4q1'=q1+Δq -Δ/2
[0082] Isto é matematicamente equivalente conforme a modalidade previamente descrita. Destaque opcional pode também ser realizado para esta modalidade.
[0083] Em uma modalidade alternativa, os segundo e terceiro offsets são calculados com base em, tal com uma função de (p2+ p0-2x p1+ 2xΔ)/4 e (q2+ q0- 2xq1- 2xΔ)/4 , respectivamente. Por exemplo, tal função poderia ser adaptada para uma implementação de hardware e/ou ser uma representação inteira de (p2+ p0-2x p1+ 2xΔ)/4e (q2+q0-2xq1-2xΔ)/4 . Um exemplo particular desta implementação de hardware que produz valores inteiros é para calcular o segundo offset com base em, preferivelmente igual a, (((q2+q0+1) >> 1)-q1-Δ) >> 1 .
[0084] Neste caso, os valores de pixel modificados são calculados como:Δp = (((p2 + p0 + 1) >> 1)- p1 + Δ) >> 1p1'= p1+ΔpΔq = (((q2 + q0 + 1) >> 1) - q1 - Δ) >> 1Ou se for utilizado clipping: Δp = Clip3(- tC2, tC2, (((p2 + p0 + 1) >> 1)- p1 + Δ)>> 1)pl = Clip(pl + Δp )Δ q = Clip 3(- tC 2, tc 2, (((q 2+q 0+1)>> 1)- q1 -Δ)>> 1)ql = Clip (q1 + Δ q )
[0085] Uma modalidade alternativa para cálculo do segundo ou terceiro offset queé adaptada para implementação de hardware é:Δp = Clip3(- tc2, tc2,((p2 + p0 -((p1 -Δ)<< 1)+ 2)>> 2))Δq = Clip3(-tc2,tc2,((q2 + a0-((q1 + Δ)<< 1)+ 2)>> 2))em que << denota operação de mudança esquerda.
[0086] Uma outra modalidade alternativa para cálculo dos segundo e terceiro offsets, que é adaptada para implementação de hardware, é:Δ p = Clip3(- tc2, tc2,(((( p 2 + p0 + 1)>> 1)- p1 + Δ + 1) >> 1))Δ q = Clip 3(- tc 2, tc 2,((((q 2+q 0+1)>> 1)-q1 -Δ + 1)>> 1))
[0087] Em uma outra modalidade, pode-se utilizar um filtro passa-baixa forte em combinação com o primeiro offset. Neste caso, o segundo offset é calculado com base em (p2 + p0-2xp1 + Δ)/2, tal como igual a ((p2 + p0 + 1 + Δ)>> 1)-p1 ou em uma implementação de hardware adaptado, com base em, preferivelmente igual a, ou alternativamente ((p2 + p0+Δ- (p1 << 1) +1) >> 1). O terceiro offset poderia então ser calculado com base em, tal como igual a, (q2+q0-2xq1-Δ)/2 ou, em uma implementação hardware adaptado, com base em, preferivelmente igual a ((q2+q0+1-Δ) >> 1)-q1 , ou alternativamente ((q2+q0-Δ-(q1 << 1) +1) >> 1).
[0088] Uma modalidade particular calcula os primeiro, segundo e terceiro offsets para uma linha de pixels no bloco para, desta forma, modificar os valores de pixel de ambos os pixels mais próximos à fronteira de bloco e os pixels ainda mais próximos à fronteira de bloco.
[0089] Em uma modalidade alternativa, uma decisão é primeiramente tomada se for para calcular o segundo e o terceiro offsets e, desta forma, se for para modificar os valores de pixel ainda mais próximos à fronteira de bloco e ainda para modificar os valores de pixel dos pixels mais próximos à fronteira de bloco.
[0090] Similarmente para as modalidades descritas anteriormente, o cálculo dos segundo e terceiro offsets para modificar os valores de pixel dos pixels ainda mais próximos à fronteira de bloco, podem ser calculados os quarto e quinto offsets para modificar os valores de pixel dos pixels segundo mais próximos à fronteira de bloco.
[0091] A figura 7 ilustra um fluxograma que mostra uma modalidade. O método continua da etapa S33 da figura 5. Uma etapa seguinte S50 calcula um quarto offset com base em (p3 + pl - 2x p2 + 2xΔpi )/4, em que p3 denota o valor de pixel do pixel 17 terceiro mais próximo da fronteira de bloco 1 na linha 12 de pixels 11, 13, 15, 17 no bloco 10 e Δ p1 denota o segundo offset. A etapa S51 correspondentemente calcula um quinto offset para ser baseado em (q3+ q1-2xq2+2xΔq1)/4 , em que q3 denota o valor de pixel do pixel 27 terceiro mais próximo da fronteira de bloco 1 na linha correspondente 22 de pixels 21, 23, 25, 27 no bloco vizinho 20 e Δq1 denota o terceiro offset. As etapas S50 e S51 podem ser realizadas sequencialmente em qualquer ordem ou pelo menos parcialmente em paralelo.
[0092] Quarto e quinto offsets podem, numa modalidade alternativa, ser calculados com base em (p3+ p1-2xp2+Δp1)/2 e (q3+ q1-2xq2+Δq1)/2, respectivamente, ou, alternativamente, (p3+ p1 -2xp2+ 2xΔq1)/4 e (q3+ q1 -2xq2+ 2xΔp2)/4 .
[0093] As duas etapas seguintes modificam os valores de pixel com base nos quarto e quinto offsets. Então, a etapa S52 modifica o valor de pixel do pixel 15 segundo mais próximo à fronteira de bloco 1 na linha 12 de pixel 11, 13, 15, 17 no bloco 10 por meio de adição do quarto offset no valor de pixel deste pixel 15 para formar um valor de pixel modificado. A etapa S53 modifica correspondentemente o valor de pixel do pixel 25 segundo mais próximo à fronteira de bloco 1 na linha correspondente 22 de pixels 21, 23, 25, 27 nos blocos vizinhos 20 por meio da adição da quinto offset no valor de pixel deste pixel 25 para formar um valor de pixel modificado. As etapas S52 e S53 podem ser realizadas sequencialmente em qualquer ordem ou pelo menos parcialmente em paralelo.
[0094] Este conceito pode também ser generalizado para os filtros que modificam mais do que três pixels da fronteira de bloco. Por exemplo, o quarto pixel 17, 27 da fronteira de bloco 1 pode ser obtido utilizando uma combinação dos offsets para os terceiros pixels 15, 25 (ou o offset dos segundos pixels 13, 23 ou o offset dos primeiros pixels 11, 21) e um filtro passa-baixa simétrico. Filtros ainda maiores são também possíveis
[0095] Em modalidades anteriores similares, o quarto e o quinto offsets podem também ser destacados. Neste caso, o mesmo intervalo como para os segundo e terceiro offsets ou meio intervalo poderia ser utilizado. Em uma modalidade alternativa, o intervalo de destaque é - tC3 e tC3 , em que o valor limiar tC3 é determinado com base no valor QP associado com o bloco. Também, os valores de pixel modificados dos pixels segundo mais próximos à fronteira de bloco podem ser destacados para estarem dentro do intervalo de 0 e M conforme mostrado na figura 4.
[0096] Em uma modalidade particular, a modificação destes valores de pixel é realizada de acordo com o seguinte: Δ p 2 = (P 3 + pl - 2 x P 2 + 2 xΔ pi )/4p2'= p2+Δp2Δ q 2 =( q 3 + ql - 2 x q 2 + 2 xΔ ql)/4q2'= q2 + Δq2em que denotam os quarto e quinto offsets, respectivamente. Pode ser realizado um destaque opcional conforme descrito anteriormente.
[0097] Uma representação de (p3+ pl-2x p2+2xΔpl)/4 e uma representação de (q3+ql-2xq2+ 2xΔql)/4 adequadas para implementar o hardware podem ser usadas para obter os quarto e quinto offsets como valores inteiros. Em uma modalidade particular, o quarto offset é calculado para ser com base em, preferencialmente igual ao seguinte: (((p3+ pl+l)>> l)- p2+Δpl)>> l . Correspondentemente,(((q3+ql+l) >> l)- q2+Δql)>> l é uma representação de inteiro para o quinto offset.
[0098] As presentes modalidades são adaptadas para combater artefatos de bloqueio em conexão com a codificação e decodificação de quadros de vídeo. As modalidades podem, portanto, ser aplicadas para tal vídeo codificação e padrões de codificação que dividem quadros de vídeo em blocos de pixels e, desta forma, correm um risco de terem artefatos de bloqueio sobre as fronteiras de bloco. Exemplos de tais padrões para os quais as presentes modalidades podem ser aplicadas são H.264 e HEVC. Em particular HEVC possui a possibilidade de selecionar entre um modo de filtração fraco e um modo de filtração forte. As presentes modalidades podem então vantajosamente ser utilizadas no modo de filtração fraca para calcular offsets que são empregadas para modificar os valores de pixel em uma linha de pixels e uma linha correspondente de pixels sobre uma fronteira de blocos. Então, as decisões se realizar tal filtração de desbloqueio de acordo com a técnica anterior sobre HEVC pode vantajosamente ser utilizada para as presentes modalidades.
[0099] Um aspecto particular para um método para reduzir artefatos de bloqueio em uma fronteira de bloco entre um bloco de múltiplos pixels e um bloco vizinho de múltiplos pixels em um quadro de vídeo. Com referência a figura 1, o método compreende calcular, na etapa S1, um primeiro offset com base no valor de pixel de um pixel próximo à fronteira de bloco em uma linha de pixels no bloco, um valor de pixel de um pixel ainda mais próximo da fronteira de bloco na linha de pixels, um valor de pixel de um pixel ainda mais próximo à fronteira de bloco em uma linha de pixels correspondente ou oposta no bloco vizinho e um valor de pixel de um pixel ainda mais próximo à fronteira de bloco na linha correspondente de pixels. A linha de pixels e a linha de pixels vizinhos são perpendiculares à fronteira de blocos. O primeiro offset é calculado com base nestes valores de pixel quando os valores de pixel aumentam ou diminuem em uma etapa quando em curso entre a linha de pixels e a linha correspondente de pixels. O método também compreende modificar, na etapa S2, o valor de pixel mais próximo à fronteira de bloco na linha de pixels. Uma etapa seguinte S3 modifica o valor de pixel mais próximo à fronteira de bloco na linha correspondente de pixels subtraindo o primeiro offset do valor de pixel mais próximo da fronteira de bloco na linha correspondente de pixels.
[00100] Este aspecto particular pode ser combinado com as modalidades discutidas anteriormente em conexão com as figuras 1 a 7.
[00101] O método de redução de artefatos bloqueadores de acordo com a modalidade descrita na figura 1 é preferivelmente realizado por meio de uma unidade de filtro de desbloqueio. Então esta unidade de filtro de desbloqueio calcula o primeiro offset na etapa S1 e modifica os valores de pixel dos pixels mais próximos à fronteira de bloco nas etapas S2 e S3. A figura 8 é um diagrama de blocos esquemático de uma modalidade de uma unidade de filtro de desbloqueio 100.
[00102] A unidade de filtro de desbloqueio 100 compreende um calculador de primeiro offset 110 configurado para calcular um primeiro offset com base em (9x(q0- p0)-3x(ql- pl))/16 conforme previamente discutido presentemente para uma linha de pixels e um bloco de pixels em um quadro de vídeo. Um modificador de pixel 120 da unidade de filtro de desbloqueio 100 é configurado para modificar o valor de pixel de um pixel mais próximo à fronteira de bloco na linha de pixels no bloco por meio de adição do primeiro offset calculado pelo calculador de primeiro offset 110 para o valor de pixel deste pixel para formar um valor de pixel modificado. O modificador de pixel 120 também modifica o valor de pixel de um pixel mais próximo à fronteira de bloco, mas em uma linha correspondente de pixel em um bloco de pixels vizinho no quadro de vídeo. Esta modificação pelo modificador de valor de pixel 120 é conseguida subtraindo o primeiro offset calculado pelo primeiro calculador 110 do valor de pixel deste pixel para formar um valor de pixel modificado.
[00103] Então, em uma modalidade particular o modificador de pixel 120 é configurado para adicionar o primeiro offset ao valor de pixel do pixel mais próximo à fronteira de bloco, na linha de pixels para formar um valor de pixel modificado. O modificador de pixel 120 é também configurado para subtrair o primeiro offset do valor de pixel do pixel mais próximo à fronteira de bloco na linha correspondente de pixels para formar um valor de pixel modificado.
[00104] Em uma modalidade particular, o calculador de primeiro offset 110 é configurado para calcular o primeiro offset para ser f ((9x(q0- p0)-3x(ql-pl))/l6) , i.e., uma função f( ) ou representação de (9x(q0- p0)-3x(ql- pl))/l6 . Esta função preferivelmente emite uma representação de inteiro de (9x(q0- p0)-3x(ql-pl))/l6 e preferivelmente a função é adequada para implementação de hardware. O calculador de primeiro offset 110 é configurado em uma modalidade para calcular o primeiro offset a ser baseado em, preferivelmente igual a (9 x( q 0 - p 0)-3 x( ql - p1)+ 8)>> 4.
[00105] A figura 9, é um diagrama de blocos esquemático de uma unidade de filtro de desbloqueio 200 de acordo com uma outra modalidade. A unidade de filtro de desbloqueio 200 compreende o calculador de primeiro offset 210 e o modificador de valor de pixel 220. Estas unidades 210, 220 operam conforme discutido acima em conexão com a figura 8. A unidade de filtro de desbloqueio 200 preferivelmente também compreende uma primeira unidade de destaque 230. Esta primeira unidade de destaque 230 é configurada para destacar o primeiro offset a estar dentro de um intervalo de -tC e tC . O valor limiar tC é então dependente de um valor QP associado com o bloco e pode, por exemplo, ser selecionado a partir da Tabela 1 com base no valor QP do bloco.
[00106] Uma segunda unidade de destaque 240 opcional é implementada na unidade de filtro de desbloqueio 200 para destacar os valores de pixel modificados pelo modificador de valor de pixel 220. Então a segunda unidade de destaque 240 limita estes valores de pixel modificados para estarem dentro de um intervalo de zero e o valor máximo definido M.
[00107] Em uma modalidade preferida a unidade de filtro de desbloqueio 200 também compreende um calculador de segundo offset 250 configurado para calcular um segundo offset com base em (p 2 + p 0 - 2 x pl + 2 xΔ)/4 para a linha de pixels no bloco.
[00108] Em uma modalidade particular, o calculador de segundo offset 250 é configurado para calcular o segundo offset a ser g((p2+ p0-2xpl+ 2xΔ)/4), i.e., uma função g( ) ou representação de (p2+ p0-2xpl+2xΔ)/4 . Esta função preferivelmente emite uma representação de inteiro de (p2+ p0-2xpl+ 2xΔ)/4 e preferivelmente a função é adequada para implementação de hardware.
[00109] O segundo calculador 250 é configurado, em uma modalidade, para calcular o segundo offset a ser baseado em, preferivelmente igual a, (((p2 + p0+ l) >> l)- pl+ Δ) >> l .
[00110] A unidade de filtro de desbloqueio 200 preferivelmente compreende um calculador de terceiro offset 260 configurado para calcular o terceiro offset com base em (q2+q0-2xql-2xΔ)/4 para a linha correspondente de pixels no bloco vizinho.
[00111] Em uma modalidade particular, o calculador de terceiro offset 260 é configurado para calcular o terceiro offset para ser h((q2 + q0-2xql-2xΔ)/4), i.e., uma função h() ou representação de (q2+q0-2xql-2xΔ)/4 . Esta função preferivelmente emite uma representação de inteiro de (q 2 + q 0 - 2 x ql - 2 xΔ)/4 e preferivelmente função é adequada para implementação de hardware. O calculador de terceiro offset 260 é configurado, em uma modalidade, para calcular o terceiro offset com base em, preferivelmente igual a(((q2 + q0 +1) >> 1) - q1 - Δ) >> 1 .
[00112] O modificador de pixel 220 da unidade de filtro de desbloqueio 200 é então configurado posteriormente para modificar o valor de pixel ainda mais próximo à fronteira de bloco na linha de pixels no bloco. O modificador de pixel 220 adiciona o segundo offset calculado pelo calculador de segundo offset 250 para o valor de pixel deste pixel. O modificador de pixel 220 é adicionalmente configurado para modificar o valor de pixel do pixel ainda mais próximo à fronteira de bloco, mas na linha correspondente de pixels no bloco vizinho. Esta modificação é conseguida adicionando o terceiro offset calculado pelo calculador de terceiro offset 260 para o valor de pixel deste pixel.
[00113] Uma terceira unidade de destaque 270 opcional da unidade de filtro de desbloqueio 200 é configurada para destacar o segundo offset calculado pelo calculador de segundo offset 250 e o terceiro offset calculado pelo calculador de terceiro offset 260 para estar dentro do intervalo de -tC2e tC2 . O valor limiar tC2 é preferivelmente dependente do valor QP associado com o bloco e é vantajosamente calculado com base no valor limiar tC utilizado para destacar o primeiro offset. Em uma modalidade alternativa, a terceira unidade de destaque 270 é omitida e qualquer destaque dos segundo e terceiro offsets é, em vez disso realizado pela primeira unidade de destaque 230.
[00114] A segunda unidade de destaque 230 preferivelmente, não apenas destaca os valores de pixel modificados dos pixels mais próximos à fronteira de bloco, mas também os valores de pixel modificados ainda mais próximos à fronteira de bloco e calculados utilizando os segundo e terceiro offsets respectivamente. Então, também estes valores de pixel modificados são preferivelmente restritos a estarem dentro do intervalo de zero ao valor máximo definido M.
[00115] O calculador de segundo offset 250 e o calculador de terceiro offset 260 poderiam ser configurados para calcular os segundo e terceiro offsets para cada linha de pixels e cada linha correspondente de pixels para que a filtração de desbloqueio a ser aplicado sobre a fronteira de bloco entre o bloco e o bloco vizinho. Em uma técnica alternativa, a unidade de filtro de desbloqueio 200 realiza uma seleção se para apenas calcular o primeiro offset e assim apenas modificar os valores de pixel dos pixels mais próximos à fronteira de bloco ou para calcular tanto primeiro, segundo ou terceiro offsets e desta forma modificar os valores de pixel dos pixels mais próximos e os pixels ainda mais próximos à fronteira de bloco.
[00116] Em uma modalidade opcional, a unidade de filtro de desbloqueio 220 pode compreender um calculador de offset 280 configurado para calcular um quarto offset a ser baseado em (p 3 + p1 - 2 x p 2 + 2 xΔ pí)/4.
[00117] Em uma modalidade particular, o calculador de quarto offset 280 é configurado para calcular o quarto offset para ser b((p3 + p1-2xp2+2xΔp1)/4), i.e., uma função b() ou representação de (p3+ p1-2xp2+2xΔp1)/4. Esta função preferivelmente emite uma representação de inteiro de (p3+ p1- 2xp2+ 2xΔp1)/4 e preferivelmente é adequado para implementação de hardware. O calculador de quarto offset 280 é configurado, em uma modalidade, para calcular o quarto offset a ser baseado em, preferivelmente igual a (((p3+ p1+1) >> 1)-p2+Δp1)>> 1 .
[00118] O filtro de desbloqueio 200 poderia também compreender um calculador de quinto offset 290 configurado para calcular um quinto offset a ser baseado em (q3+q1-2xq2+2xΔq1)/4.
[00119] Em uma modalidade particular, o calculador de quinto offset 290 é configurado para calcular o quinto offset a ser k((q3+ q1-2xq2+ 2 x Δq1)/ 4), i.e., uma função k( ) ou representação de (q3+ q1-2xq2+ 2xΔq1)/4 . Esta função preferivelmente emite uma representação de inteiro ou (q3+ q1-2xq2+2xΔq1)/4 e preferivelmente a função é adequada para implementação de hardware. O calculador de quinto offset 290 é configurado, em uma modalidade, para calcular o quinto offset a ser baseado em, preferivelmente igual a (((q3 + q1+1) >> 1)-q2+ Δq1)>> 1.
[00120] Nesta modalidade, o modificador de valor de pixel 220 é também configurado para modificar o valor de pixel do pixel segundo mais próximo à fronteira de bloco na linha de pixels no bloco por adição do quarto offset calculado pelo calculador de quarto offset 280 ao valor de pixel deste pixel. O modificador de valor de pixel 220 adicionalmente modifica, nesta modalidade, o valor de pixel do pixel segundo mais próximo à fronteira de bloco na linha correspondente de pixels no bloco vizinho adicionando a quinto offset calculado pelo calculador de quinto offset ao valor de pixel deste pixel.
[00121] A segunda unidade de destaque 240 preferivelmente processa os valores de pixel modificados para restringi-los dentro do intervalo de zero e o valor máximo predeterminado M. A terceira unidade de destaque 270 pode também ser utilizada para destacar os quarto e quinto offsets similarmente os segundo e terceiro offsets. Alternativamente, a unidade de filtro de desbloqueio 200 compreende uma quarta unidade de destaque configurada para destacar os quarto e quinto offsets. Alternativamente, a unidade de filtro de desbloqueio 200 compreende uma quarta unidade de destaque configurada para destacar os quarto e quinto offsets para estarem dentro de um intervalo tendo pontos terminais que são definidos com base no valor QP do bloco e preferivelmente baseado no valor limiar tC .
[00122] Um aspecto particular refere-se a uma unidade de filtro de desbloqueio para reduzir artefatos de bloqueio em uma fronteira de bloco entre um bloco de múltiplos pixels e um bloco vizinho de múltiplos pixels em um quadro de vídeo. Com referência à figura 8, a unidade de filtro de desbloqueio 100 compreende um calculador de primeiro offset 110 configurado para calcular o primeiro offset com base no valor de pixel de um pixel mais próximo à fronteira de bloco em uma linha de pixels no bloco, um valor de pixel de um pixel mais próximo à fronteira de pixel na linha de pixels, um valor de pixel de um pixel mais próximo à fronteira de bloco em uma linha de pixels correspondente ou oposta no bloco vizinho e um valor de pixel de um pixel ainda mais próximo à fronteira de bloco na linha de pixels correspondente. A linha de pixels e a linha de pixels vizinha são perpendiculares à fronteira de bloco. O primeiro offset é calculado pelo calculador de primeiro offset 110 com base nestes valores de pixel e uma fórmula que produz um valor de offset que se aproxima de zero, preferivelmente se iguala a zero, quando os valores de pixel são linearmente crescentes ou decrescentes ou são os mesmos quando em curso ao longo da linha de pixels e da linha correspondente de pixels. A unidade de filtro de desbloqueio 100 compreende um modificador de valor de pixel 120 configurado para modificar o valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels adicionando o primeiro offset ao valor de pixel do pixel mais próximo à fronteira de bloco na linha de pixels para formar um valor de pixel modificado. O modificador de valor de pixel 120 é também configurado para modificar o valor de pixel do pixel mais próximo à fronteira de bloco na linha correspondente de pixels subtraindo o primeiro offset do valor de pixel do pixel mais próximo à fronteira de bloco na linha correspondente de pixels para formar um valor modificado de pixel.
[00123] Apesar das respectivas unidades 110, 120 e 210-290 descritas em conjunção com as figuras 8 e 9 terem sido descritas como unidades fisicamente separadas 110, 120 e 210-290 no dispositivo 100, 200 e todos podem ser circuitos com propósitos especiais, tais como os ASIC (Circuitos Integrados de Aplicação Específica), as modalidades alternativas do dispositivo 100, 200 são possíveis onde alguns ou todas as unidades 110, 120 e 210-290 são implementadas como módulos de programa de computador que são executados em um processador de propósito geral. Tal modalidade é descrita na figura 10.
[00124] A figura 10 ilustra esquematicamente uma modalidade de computador 70 que possui uma unidade de processamento 72, tal como uma DSP (Processador de Sinal Digital) ou CPU (Unidade de Processamento Central). A unidade de processamento 72 pode ser uma unidade simples ou uma pluralidade de unidades para realizar diferentes etapas do método descrito presentemente. O computador 70 também compreende uma unidade de entrada/saída (I/O) 71 para receber quadros de vídeo gravados ou gerados ou quadro de vídeo codificado ou dados de vídeo decodificados. A unidade I/O 71 foi ilustrada como uma unidade simples na figura 10, mas pode estar igualmente na forma de uma unidade separada para entrada e unidade separada para saída.
[00125] Além disso, o computador 70 compreende pelo menos um produto de programa de computador 73 na forma de uma memória não volátil, por exemplo, uma EEPROM (Electrically, Erasable, Programmable Read-Only Memory), uma memória flash ou um drive de disco. O produto de programa de computador 73 compreende um programa de computador 74 que compreende meios de código que quando executados no computador 70, tal como pela unidade de processamento 72 faz com que o computador 70 realize as etapas do método descrito anteriormente em conexão com a figura 1. Então, em uma modalidade os meios de código no programa de computador 74 compreende um primeiro módulo de cálculo de offset ou calculador de primeiro offset 310 para calcular o primeiro offset e um módulo de modificação de valor de pixel ou um modificador de valor de pixel 320 para modificar valores de pixel de um módulo de filtro de desbloqueio 300 ou dispositivo de filtro de desbloqueio. Estes módulos 310, 320 essencialmente realizam as etapas do fluxograma na figura 1 quando executados na unidade de processamento 72. Então, quando os módulos diferentes 310, 320 são executados na unidade de processamento eles correspondem às unidades correspondentes 110, 120 da figura 8 e unidades 210, 220 da figura 9.
[00126] O programa de computador 74 pode adicionalmente compreender um primeiro módulo de destaque, um segundo módulo de destaque, um segundo módulo de cálculo de offset, um terceiro módulo de cálculo de offset e opcionalmente também um terceiro módulo de destaque, um quarto módulo de cálculo de offset e um quinto módulo de cálculo de offset para realizar a operação das unidades correspondentes 230-290 na figura 9.
[00127] O computador 70 da figura 10 pode ser um equipamento de usuário ou estar presente em um equipamento de usuário 80. Em tal caso, o equipamento de usuário 80 pode adicionalmente compreender ou ser conectado a um mostrador (display) 88 para mostrar os dados de vídeo.
[00128] A unidade de filtro de desbloqueio 100, 200 de figuras 8 e 9 é preferivelmente utilizada em codificação de vídeo. Esta funciona e é, portanto, preferivelmente implementada tanto em vídeo codificador e em um decodificador de vídeo. O decodificador de vídeo pode ser implementado preferivelmente em hardware, mas também em software. O mesmo é mantido para o codificador de vídeo.
[00129] A figura 11 é um diagrama de blocos esquemático de um codificador 40 para codificar um bloco de pixels em um quadro de vídeo de uma sequência de vídeo de acordo com uma modalidade.
[00130] Um bloco corrente de pixels é previsto realizando uma estimativa de movimento por meio de um estimador 50 de um bloco já proporcionado de pixels no mesmo quadro ou em um quadro anterior. O resultado da estimativa de movimento é um movimento ou vetor de deslocamento associado com o bloco de referência, no caso de previsão inter. O vetor de movimento é utilizado por um compensador de movimento 50 para emitir uma previsão inter de bloco de pixels.
[00131] Um previsor intra 49 computa uma previsão intra do bloco corrente de pixels. As saídas a partir do estimador/compensador de movimento 50 e o previsor intra 49 são recebidos em um seletor 51 que tanto seleciona previsão intra ou predição inter para o bloco corrente de pixels. A saída do seletor 51 é entrada para um calculador de erro na forma de um adicionador 41 que também recebe os valores de pixel do bloco corrente de pixels. O adicionador 41 calcula e emite um erro residual como a diferença nos valores de pixel entre o bloco de pixels e sua previsão.
[00132] O erro é transformado em um transformador 42, tal como uma transformada de cosseno discreto e quantificado por um quantificador 43 seguido por codificação em um codificador 44, tal como por codificador de entropia. Em codificação inter, também o vetor de movimento estimado é trazido para o codificador 44 para gerar a representação codificada do bloco de pixels corrente.
[00133] O erro residual transformado e quantificado para o bloco corrente de pixels também é proporcionado em um quantificador inverso 45 e transformador inverso 46 para recuperar o erro original residual. Este erro é adicionado em um adicionador 47 para a saída de predição de bloco do compensador de movimento 50 ou o previsor intra 49 para criar um bloco de referência de pixels que podem ser utilizado na predição e codificação de um próximo bloco de pixels. Este novo bloco de referência é primeiro processado por uma unidade de filtro de desbloqueio 100 de acordo com as modalidades para realizar filtração de desbloqueio para combater qualquer artefato de bloqueio. Este novo bloco de referência processado é então temporariamente armazenado em um buffer de quadro 48, onde é disponível para o previsor intra 49 e o estimador/compensador 50.
[00134] A figura 12 é um diagrama de blocos esquemático correspondente de um decodificador 60 compreendendo uma unidade de filtro de desbloqueio 100 de acordo com as modalidades. O decodificador 60 compreende um decodificador 61, tal como decodificador de entropia, para decodificar uma representação codificada de um bloco de pixels para dar um conjunto de erros residuais quantificados e transformados. Estes erros residuais são desquantificados em um quantificador inverso 62 e transformada inversa por um transformador inverso 63 para dar um conjunto de erros residuais.
[00135] Estes erros são adicionados em um adicionador 64 para valores de pixel de um bloco de pixels de referência. O bloco de referência é determinado por um estimador/compensador de movimento 67 ou um previsor intra 66, dependendo de qual previsão inter ou intra é realizada. Um seletor 68 é desta forma interconectado ao adicionador 64 e ao estimador/compensador de movimento 67 e o previsor intra 66. O bloco de pixels decodificado resultante, a forma de saída do adicionador 64 é entrado em uma unidade de filtro de desbloqueio 100 de acordo com as modalidades para desbloquear por filtração qualquer artefato de bloqueio. O bloco filtrado de pixels é a forma de saída do decodificador 60 e é posteriormente, preferivelmente e temporariamente, proporcionado em um buffer de quadro 65 e pode ser utilizado como bloco de referência de pixels de um bloco subsequente de pixels a ser decodificado. O buffer de quadro 65 é desta forma conectado no estimador/compensador 67 para fazer os blocos armazenados de pixels disponível no estimador/compensador de movimento 67.
[00136] A saída do adicionador 64 é preferivelmente também entrado no previsor intra 66 a ser utilizado como um bloco de referência de pixels não filtrado.
[00137] Nas modalidades descritas nas figuras 11 e 12 a unidade de filtro de desbloqueio 100 realiza a filtração de desbloqueio como a dita filtração em loop. Em uma implementação alternativa no decodificador 60 a unidade de filtração de desbloqueio 100 é arranjada para realizar a dita filtração pós-processamento. Neste caso, a unidade de filtro de desbloqueio 100 opera nos quadros de saída fora do loop formado pelo adicionador 64, o buffer de quadro 65, o previsor intra 66, e o compensador/estimador de movimento 67 e o seletor 68. A filtração de desbloqueio é então realizada normalmente no codificador.
[00138] A figura 13 ilustra um diagrama de blocos esquemático de equipamento de usuário ou terminal de mídia 80 que aloja um decodificador 60 com uma unidade de filtro de desbloqueio. O equipamento de usuário 80 pode ser qualquer dispositivo que possua funções de decodificação de mídia que opera em uma corrente de vídeo codificada de quadros de vídeo para decodificar assim os quadros de vídeo e tornar os dados de vídeo disponíveis. Exemplos não limitativos incluem telefones móveis e outros media player, tablets, desktops, notebooks, gravadores de vídeo pessoais, multimedia players, servidores de vídeo streaming, set top boxes, TVs, computadores, decodificadores, consoles de games, etc. portáteis. O equipamento de usuário 80 compreende uma memória 84 configurada para armazenar quadros de vídeo codificados. Estes quadros de vídeo codificados podem ter sido gerados pelo equipamento de usuário 80 propriamente. Neste caso, o equipamento de usuário 80 preferivelmente compreende um motor de mídia ou gravador juntamente com um codificador conectado, tal como um codificador da figura 11. Alternativamente, os quadros de vídeo codificados são geralmente por algum outro dispositivo e transmitido por via sem fio ou transmitido via fio para o equipamento de usuário 80. O equipamento de usuário 80 então compreende o transceptor (transmissor e receptor) ou porta de entrada e saída 82 para conseguir a transferência de dados.
[00139] Os quadros de vídeo codificados são trazidos da memória 84 em um decodificador 60, tal como o decodificador ilustrado na figura 12. O decodificador 60 compreende uma unidade de filtração de desbloqueio 100 de acordo com as modalidades. O decodificador 60 então decodifica os quadros de vídeo codificados em quadros de vídeo decodificados. Os quadros de vídeo decodificados são proporcionados em um media player 86 que é configurado para tornar os quadros de vídeo decodificados dados de vídeo que é apresentável em display ou tela 88 ou conectado ao equipamento de usuário 80.
[00140] Na figura 13, o equipamento de usuário 80 foi ilustrado como compreendendo tanto o decodificador 60 e o media player 86 com o decodificador 60 implementado como uma parte do media player 86. Isto deveria, entretanto, meramente ser visto como um exemplo ilustrativo não limitativo de uma modalidade de implementação para o equipamento de usuário 80. Implementações também distribuídas são possíveis onde o decodificador 60 e o media player 86 são proporcionados em dois dispositivos fisicamente separados são possíveis dentro do escopo de equipamento de usuário 80 conforme presentemente utilizado. O display 88 poderia também ser proporcionado como dispositivo em separado conectado ao equipamento de usuário 80, onde os dados de processamento reais ocorrem.
[00141] Conforme ilustrado na figura 14, o codificador 40 e/ou decodificador 60, tal como ilustrado nas figuras 11 e 12, podem ser implementados em um dispositivo de rede 30 sendo ou pertencendo a um nó de rede em uma rede de comunicação 32 entre uma unidade de envio 34 e um equipamento de usuário receptor 36. Este dispositivo de rede 30 pode ser um dispositivo para converter vídeo de acordo com um padrão de codificação de vídeo para um outro padrão de codificação de vídeo, por exemplo, se foi estabelecido que o equipamento de usuário receptor 36 é apenas capaz de ou prefere um outro padrão de codificação de vídeo que aquele enviado a partir da unidade de envio 34. O dispositivo de rede 30 pode estar na forma de ou compreendido numa estação de base de rádio, NóB ou qualquer outro nó de rede numa rede de comunicação 32, tal como uma rede de rádio base.
[00142] As modalidades descritas acima devem ser entendidas como sendo apenas alguns exemplos ilustrativos da presente invenção. Será entendido por aqueles versados na técnica que várias modificações, combinações e mudanças podem ser feitas para as modalidades sem prejuízo do escopo da presente invenção. Em particular, soluções de diferentes partes nas diferentes modalidades podem ser combinadas em outras configurações, onde tecnicamente possível. O escopo da presente invenção é, entretanto, definido pelas reivindicações apensas.

Claims (23)

1. Método para reduzir artefatos de bloqueio em uma fronteira de bloco (1) entre um bloco (10) de múltiplos pixels (11, 13, 15, 17) e um bloco vizinho (20) de múltiplos pixels (21,23, 25, 27) em um quadro de vídeo, caracterizado por compreender:calcular (S1) um primeiro offset de maneira a ser igual à seguinte equação: (9 x( q 0 - p 0)- 3 x( ql - p1)+8) >> 4, em que >> denota uma operação de deslocamento para a direita, P0 denota um valor de pixel de um pixel (11) mais próximo à fronteira de bloco (1) em uma linha (12) de pixels (11, 13, 15, 17) naquele bloco (10), em que a linha (12) de pixels (11, 13, 15, 17) é perpendicular à fronteira de bloco (1), P1 denota um valor de pixel de um pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17), Q0 denota um valor de pixel de um pixel (21) mais próximo à fronteira de bloco (1) em uma linha correspondente (22) de pixels (21, 23, 25, 27) naquele bloco vizinho (20), em que a dita linha correspondente (22) de pixels (21, 23, 25, 27) é perpendicular à fronteira de bloco (1), e Q1 denota um valor de pixel de um pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27);modificar (S2) o valor de pixel P0 do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) ao adicionar o primeiro offset ao valor de pixel P0 do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para formar um valor de pixel modificado P0’ do pixel (11) mais próximo àquela fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17); emodificar (S3) o valor de pixel Q0 do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) ao subtrair o primeiro offset do valor de pixel Q0 do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para formar um valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27).
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente destacar (S11) o primeiro offset para estar dentro de um intervalo de - tC e tC por meio de ajuste do primeiro offset para ser igual a - tC se o primeiro offset for menor do que -tC e por meio de ajuste do primeiro offset para ser igual a tC se o primeiro offset for maior do que tC , em que tC é um valor limiar que é dependente de um valor de parâmetro de quantificação atribuído ao bloco (10).
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente:destacar (S21) o valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para estar dentro de um intervalo de zero e um valor máximo definido por meio de ajuste do valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para ser igual a zero se o valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) for menor do que zero e por meio de ajuste do valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para ser igual ao valor máximo definido se o valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) for maior do que o valor máximo definido; edestacar (S21) o valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para estar dentro de um intervalo de zero e o valor máximo definido por meio de ajuste daquele valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para ser igual a zero se o valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) for menor do que zero e por meio de ajuste do valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para ser igual ao máximo definido se o valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) for maior do que o valor máximo definido.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente:calcular (S30) um segundo offset para estar baseado na seguinte equação: (p 2 + p 0 - 2 x p1 + 2 xΔ)/4, em que p2 denota um valor de pixel de um pixel (15) segundo ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) e Δ denota o primeiro offset;calcular (S31) um terceiro offset para estar baseado na seguinte equação: (q2+q0-2xq1-2xΔ)/4 , em que Q2 denota um valor de pixel de um pixel (25) segundo ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27); modificar (S32) o valor de pixel P1 do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) ao adicionar o segundo offset ao valor de pixel P1 do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para formar um valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17); emodificar (S33) o valor de pixel Q1 do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) ao adicionar o terceiro offset ao valor de pixel Q1 do pixel (23) ainda mais próximo à dita fronteira de bloco (1) naquela linha correspondente (22) de pixels (21, 23, 25, 27) para formar um valor de pixel modificado Q1’ do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27).
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que: calcular (S30) o segundo offset compreende calcular (S30) o segundo offset para ser igual à seguinte equação: (((p 2 + p 0 +1)>> 1)- pl + Δ)>> 1, em que >> denota uma operação de deslocamento para a direita; ecalcular (S31) o terceiro offset compreende calcular (S31) o terceiro offset para ser igual à seguinte equação: (((q2+q0+1)>> 1)- ql — Δ) >> 1 .
6. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende adicionalmente:destacar (S41) o segundo offset para estar dentro de um intervalo de -tC2e tC2 por meio de ajuste do segundo offset para ser igual a -tC2 se o segundo offset for menor do que -tC2 e por meio de ajuste do segundo offset para ser igual a tC2 se aquele segundo offset for maior do que tC2 , em que tC2 é um valor limiar que é dependente de um valor de parâmetro de quantificação atribuído ao bloco (10); edestacar (S41) o terceiro offset dentro de um intervalo de -tC2 e tC2 por meio de ajuste do terceiro offset para ser igual a -tC2 se o terceiro offset for menor do que - tC2 e por meio de ajuste do terceiro offset para ser igual a tC2 se o terceiro offset for maior do que tC2.
7. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende adicionalmente:destacar (S21) o valor de pixel modificado P1’ daquele pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para estar dentro de um intervalo de zero e um valor máximo definido por meio de ajuste do valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para ser igual a zero se o valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) for menor do que zero e por meio de ajuste do valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para ser igual ao valor máximo definido se o valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) for maior do que o valor máximo definido; edestacar (S21) o valor de pixel modificado Q1’ do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para estar dentro de um intervalo de zero e o valor máximo definido por meio de ajuste do valor de pixel modificado Q1’ do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para ser igual a zero se o valor de pixel modificado Q1’ do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) for menor do que zero e por meio de ajuste do valor de pixel modificado Q1’ do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para ser igual ao máximo definido se o valor de pixel modificado Q1’ do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) for maior do que o valor máximo definido.
8. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende adicionalmente:calcular (S50) um quarto offset para estar baseado na seguinte equação: (p3 + p1 -2xp2 + 2xΔpi)/4, em que p3 denota um valor de pixel de um pixel (17) terceiro ainda mais próximo àquela fronteira de bloco (1) na linha (22) de pixels (11, 13, 15, 17) e Δ p1 denota o segundo offset; ecalcular (S51) um quinto offset para estar baseado na seguinte equação: (q3+ q1- 2xq2+ 2xΔq1)/4 , em que Q3 denota um valor de pixel de um pixel (27) terceiro mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) e Δq1 denota o terceiro offset;modificar (S52) o valor de pixel P2 do pixel (15) segundo ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) ao adicionar o quarto offset ao valor de pixel P2 do pixel (15) segundo ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para formar um valor de pixel modificado P2’ do pixel (15) segundo ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17); emodificar (S53) o valor de pixel Q2 do pixel (25) segundo ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) ao adicionar o quinto offset ao valor de pixel Q2 do pixel (25) segundo ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para formar um valor de pixel modificado Q2’ do pixel (25) segundo ainda mais próximo à fronteira de bloco (1) em tal linha correspondente (22) de pixels (21, 23, 25, 27).
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que: calcular (S51) o quarto offset compreende calcular (S51) o quarto offset para ser igual à seguinte equação: (((p3+ p1+1) >> 1)-p2+Δp1)>> 1 , em que >> denota uma operação de deslocamento para a direita; ecalcular (S52) o quinto offset compreende calcular (S52) o quinto offset para ser igual à seguinte equação: (((q3 + q1+1) >> 1)- q2+Δq1)>> 1 .
10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que: calcular (S1) o primeiro offset compreende calcular (S1), por uma unidade de filtro de desbloqueio (100, 200, 300), o primeiro offset para estar baseado na seguinte equação: (9 x(q0 - p0)- 3 x(ql - pl))/16 ;modificar (S2) o valor de pixel P0 compreende modificar (S2), pela unidade de filtro de desbloqueio (100, 200, 300), o valor de pixel P0 daquele pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) ao adicionar o primeiro offset ao valor de pixel P0 do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para formar o valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17); emodificar (S3) o valor de pixel Q0 compreende modificar (S3), pela unidade de filtro de desbloqueio (100, 200, 300), o valor de pixel Q0 daquele pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) ao subtrair tal primeiro offset do valor de pixel Q0 do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para formar o valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27).
11. Unidade de filtro de desbloqueio (100, 200) para reduzir artefatos de bloqueio em uma fronteira de bloco (1) entre um bloco (10) de múltiplos pixels (11, 13, 15, 17) e um bloco vizinho (20) de múltiplos pixels (21, 23, 25, 27) em um quadro de vídeo, dita unidade de filtro de desbloqueio (100, 200) sendo caracterizada por compreender:um calculador de primeiro offset (110, 120) que é configurado para calcular um primeiro offset para ser igual à seguinte equação: (9x(q0-p0)-3x(ql-pl)+8)>> 4, em que >> denota uma operação de deslocamento para a direita, P0 denota um valor de pixel de um pixel (11) mais próximo à fronteira de bloco (1) numa linha (12) de pixels (11, 13, 15, 17) no bloco (10), em que a linha (12) de pixels (11, 13, 15, 17) é perpendicular à fronteira de bloco (1), P1 denota um valor de pixel de um pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17), Q0 denota um valor de pixel de um pixel (21) mais próximo à fronteira de bloco (1) em uma linha correspondente (22) de pixels (21, 23, 25, 27) no bloco vizinho (20), em que aquela linha correspondente (22) de pixels (21, 23, 25, 27) é perpendicular à fronteira de bloco (1), e Q1 denota um valor de pixel de um pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27); eum modificador de valor de pixel (120, 220) que é configurado para modificar o valor de pixel P0 do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) ao adicionar o primeiro offset ao valor de pixel P0 do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para formar um valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) e para modificar o valor de pixel Q0 do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) ao subtrair o primeiro offset do valor de pixel Q0 do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para formar um valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (12) de pixels (11, 13, 15, 17).
12. Unidade de filtro de desbloqueio, de acordo com a reivindicação 11, caracterizada por compreender adicionalmente uma primeira unidade de destaque (230) que é configurada para destacar o primeiro offset dentro de um intervalo de -tC e tC por meio de ajuste do primeiro offset para ser igual a -tC se o primeiro offset for menor do que -tC e por meio de ajuste do primeiro offset para ser igual a tC se o primeiro offset for maior do que tC , em que tC é um valor limiar que é dependente de um valor de parâmetro de quantificação atribuído ao bloco (10).
13. Unidade de filtro de desbloqueio, de acordo com a reivindicação 11, caracterizada por compreender adicionalmente uma segunda unidade de destaque (240) que é configurada para destacar o valor de pixel modificado P0’ do pixel (11) mais próximo àquela fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para estar dentro de um intervalo de zero e um valor máximo definido por ajuste do valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para ser igual a zero se o valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) for menor do que zero e por ajuste daquele valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para ser igual ao valor máximo definido se o valor de pixel modificado P0’ do pixel (11) mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) for maior do que o valor máximo definido e para destacar o valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para estar dentro de um intervalo de zero e o valor máximo definido por ajuste de tal valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para ser igual a zero se o valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) for menor do que zero e por ajuste daquele valor de pixel modificado Q0’ do pixel (21) mais próximo à fronteira de bloco (1) naquela linha correspondente (22) de pixels (21, 23, 25, 27) para ser igual ao máximo definido se o valor de pixel modificado Q0’ daquele pixel (21) mais próximo à fronteira de bloco (1) naquela linha correspondente (22) de pixels (21, 23, 25, 27) for maior do que o valor máximo definido.
14. Unidade de filtro de desbloqueio, de acordo com a reivindicação 11, caracterizada por compreender adicionalmente: um calculador de segundo offset (250) que é configurado para calcular um segundo offset para estar baseado na seguinte equação: (p 2 + p 0 - 2 x p1 + 2 xΔ)/4, em que P2 denota um valor de pixel de um pixel (15) segundo ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) e Δ denota o primeiro offset; eum calculador de terceiro offset (260) que é configurado para calcular um terceiro offset para estar baseado na seguinte equação: (q2+q0-2xq1-2xΔ)/4 , em que Q2 denota um valor de pixel de um pixel (25) segundo ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27),em que o modificador de valor de pixel (220) é configurado para modificar o valor de pixel P1 do pixel (13) ainda mais próximo àquela fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) ao adicionar o segundo offset ao valor de pixel P1 daquele pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para formar um valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) e para modificar o valor de pixel Q1 do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) ao adicionar o terceiro offset ao valor de pixel Q1 do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para formar um valor de pixel modificado Q1’ do pixel (23) ainda mais próximo àquela fronteira de bloco (1) naquela linha correspondente (22) de pixels (21, 23, 25, 27).
15. Unidade de filtro de desbloqueio, de acordo com a reivindicação 14, caracterizada pelo fato de que:o calculador de segundo offset (250) é configurado para calcular o segundo offset para ser igual à seguinte equação: (((p2 + p0 +1) >> 1)- p1+ Δ) >> 1 , em que >> denota uma operação de deslocamento para a direita; eo calculador de terceiro offset (260) é configurado para calcular o terceiro offset para ser igual à seguinte equação: (((q2+q0+1)>> 1)- q1 - Δ) >> 1 .
16. Unidade de filtro de desbloqueio, de acordo com a reivindicação 15, caracterizado por compreender adicionalmente uma terceira unidade de destaque (270) que é configurada para destacar o segundo offset para estar dentro de um intervalo de - tC2 e tC2 por ajuste do segundo offset para ser igual a -tC2 se o segundo offset for menor do que -tC2 e por ajuste do segundo offset para ser igual a tC2 se o segundo offset for maior do que tC2 , em que tC2 é um valor limiar que é dependente de um valor de parâmetro de quantificação atribuído ao bloco, e destacar o terceiro offset para estar dentro de um intervalo de - tC2 e tC2 por ajuste do terceiro offset para ser igual a -tC2 se o terceiro offset for menor do que -tC2 e por ajuste do terceiro offset para ser igual a tC2 se o terceiro offset for maior do que tC2 .
17. Unidade de filtro de desbloqueio, de acordo com a reivindicação 14, caracterizada por compreender adicionalmente uma segunda unidade de destaque (240) que é configurada para destacar o valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para estar dentro de um intervalo de zero e um valor máximo definido por ajuste do valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para ser igual a zero se o valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) for menor do que zero e por ajuste do valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para ser igual ao valor máximo definido se aquele valor de pixel modificado P1’ do pixel (13) ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) for maior do que o valor máximo definido, e destacar o valor de pixel modificado Q1’ do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para estar dentro de um intervalo de zero e o valor máximo definido por ajuste do valor de pixel modificado Q1’ do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para ser igual a zero se o valor de pixel modificado Q1’ do pixel (23) ainda mais próximo àquela fronteira de bloco (1) naquela linha correspondente (22) de pixels (21, 23, 25, 27) for menor do que zero e por ajuste do valor de pixel modificado Q1’ do pixel (23) ainda mais próximo à dita fronteira de bloco (1) naquela linha correspondente (22) de pixels (21, 23, 25, 27) para ser igual ao máximo definido se o valor de pixel modificado Q1’ do pixel (23) ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) for maior do que o valor máximo definido.
18. Unidade de filtro de desbloqueio, de acordo com a reivindicação 14, caracterizada por compreender adicionalmente:um calculador de quarto offset (280) que é configurado para calcular um quarto offset para estar baseado na seguinte equação: (p 3 + p1 - 2 x p 2 + 2 xΔ pi)/ 4, em que P3 denota um valor de pixel de um pixel (17) terceiro ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) e Δ p1 denota o segundo offset; eum calculador de quinto offset (290) que é configurado para calcular um quinto offset para estar baseado na seguinte equação: (q3+ q1-2xq2+2xΔq1)/4 , em que Q3 denota um valor de pixel de um terceiro pixel (27) mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) e Δ q1denota o terceiro offset,em que o modificador de valor de pixel (220) é configurado para modificar o valor de pixel P2 do pixel (15) segundo ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) ao adicionar o quarto offset ao valor de pixel P2 do pixel (15) segundo ainda mais próximo à fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17) para formar um valor de pixel modificado P2’ do pixel (15) segundo ainda mais próximo àquela fronteira de bloco (1) na linha (12) de pixels (11, 13, 15, 17), e para modificar o valor de pixel Q2 do pixel (25) segundo ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) ao adicionar o quinto offset ao valor de pixel Q2 do pixel (25) segundo ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27) para formar um valor de pixel modificado Q2’ do pixel (25) segundo ainda mais próximo à fronteira de bloco (1) na linha correspondente (22) de pixels (21, 23, 25, 27).
19. Unidade de filtro de desbloqueio, de acordo com a reivindicação 18, caracterizada pelo fato de que:o calculador de quarto offset (280) é configurado para calcular o quarto offset para ser igual à seguinte equação: (((p 3 + p1 +1)>> 1)- p 2 + Δ p1 )>> 1, em que >> denota uma operação de deslocamento para a direita; eo calculador de quinto offset (290) é configurado para calcular o quinto offset para ser igual à seguinte equação: (((q 3 + qi +1)>> 1)- q 2 + Δ qi )>> 1.
20. Codificador (40), caracterizado por compreender uma unidade de filtro de desbloqueio (100) como definida em qualquer uma das reivindicações 11 a 19.
21. Decodificador (60), caracterizado por compreender uma unidade de filtro de desbloqueio (100) como definida em qualquer uma das reivindicações 11 a 19.
22. Equipamento de usuário (80) caracterizado por compreender:uma memória (84) configurada para armazenar quadros de vídeo codificados;um decodificador (60), como definido na reivindicação 21, configurado para decodificar os quadros de vídeo codificados em quadros de vídeo decodificados; eum executor de mídia (86) configurado para tornar aqueles quadros de vídeo decodificados em dados de vídeo que podem ser exibidos em um display (88).
23. Dispositivo de rede (30), caracterizado por ser ou pertencer a um nó de rede numa rede de comunicação (32) entre uma unidade de envio (34) e um equipamento de usuário receptor (36), o dispositivo de rede (30) compreendendo um codificador (40) como definido na reivindicação 20 e/ou um decodificador (60) como definido na reivindicação 21.
BR112013015517-5A 2011-01-14 2011-10-06 Método para reduzir artefatos de bloqueio, unidade de filtro de desbloqueio, codificador, decodificador, equipamento de usuário, e, dispositivo de rede BR112013015517B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161432751P 2011-01-14 2011-01-14
US61/432,751 2011-01-14
PCT/SE2011/051199 WO2012096610A1 (en) 2011-01-14 2011-10-06 Deblocking filtering

Publications (2)

Publication Number Publication Date
BR112013015517A2 BR112013015517A2 (pt) 2016-09-20
BR112013015517B1 true BR112013015517B1 (pt) 2021-11-23

Family

ID=46507326

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013015517-5A BR112013015517B1 (pt) 2011-01-14 2011-10-06 Método para reduzir artefatos de bloqueio, unidade de filtro de desbloqueio, codificador, decodificador, equipamento de usuário, e, dispositivo de rede

Country Status (24)

Country Link
US (4) US8526509B2 (pt)
EP (2) EP2938075B1 (pt)
JP (3) JP5540163B2 (pt)
KR (1) KR101670116B1 (pt)
CN (2) CN106101707B (pt)
AP (1) AP3890A (pt)
AU (1) AU2011354786B2 (pt)
BR (1) BR112013015517B1 (pt)
CA (1) CA2824739C (pt)
DK (1) DK2664141T3 (pt)
ES (2) ES2714349T3 (pt)
HK (1) HK1185483A1 (pt)
HU (2) HUE027993T2 (pt)
IL (1) IL226929A (pt)
MA (1) MA34906B1 (pt)
MX (1) MX2013007960A (pt)
MY (1) MY183761A (pt)
NZ (1) NZ612089A (pt)
PL (2) PL2938075T3 (pt)
PT (1) PT2664141E (pt)
RU (1) RU2550541C2 (pt)
SG (1) SG191247A1 (pt)
TW (1) TWI538521B (pt)
WO (1) WO2012096610A1 (pt)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2894856A1 (en) * 2002-01-31 2015-07-15 Samsung Electronics Co., Ltd Filtering method and apparatus for reducing block artifacts or ringing noise
JP2012510202A (ja) * 2008-11-25 2012-04-26 トムソン ライセンシング ビデオ符号化および復号のためのスパース性に基づくアーティファクト除去フィルタリングを行う方法および装置
CN101583041B (zh) * 2009-06-18 2012-03-07 中兴通讯股份有限公司 多核图像编码处理设备的图像滤波方法及设备
ES2714349T3 (es) * 2011-01-14 2019-05-28 Ericsson Telefon Ab L M Filtrado de desbloqueo
CN103299632B (zh) * 2011-01-14 2017-02-22 瑞典爱立信有限公司 去块效应滤波方法及去块效应滤波器单元
US9232237B2 (en) * 2011-08-05 2016-01-05 Texas Instruments Incorporated Block-based parallel deblocking filter in video coding
EP2774371B1 (en) 2011-11-03 2020-08-26 Sun Patent Trust Efficient rounding for deblocking
CN104025593B (zh) * 2011-11-04 2017-06-27 太阳专利托管公司 利用改进的图像块边界强度推导进行去块滤波
US10397615B2 (en) * 2012-07-03 2019-08-27 Telefonaktiebolaget Lm Ericsson (Publ) Strong deblocking filtering decisions
US20140056363A1 (en) * 2012-08-23 2014-02-27 Yedong He Method and system for deblock filtering coded macroblocks
US9445130B2 (en) * 2013-01-09 2016-09-13 Qualcomm Incorporated Blockiness metric for large HEVC block artifacts
CN104284199B (zh) * 2013-07-11 2019-02-01 Nxp股份有限公司 用降低复杂度的去块效应操作进行视频解码方法和装置
US10666975B2 (en) * 2014-04-23 2020-05-26 Sony Corporation Image processing apparatus and image processing method
US9779664B2 (en) * 2014-08-05 2017-10-03 Apple Inc. Concurrently refreshing multiple areas of a display device using multiple different refresh rates
JP6269431B2 (ja) * 2014-10-10 2018-01-31 ソニー株式会社 画像処理装置、画像処理方法及び画像処理システム
JP6545515B2 (ja) * 2015-04-24 2019-07-17 株式会社東芝 画像復号装置
CN106303550B (zh) 2015-06-11 2019-06-21 华为技术有限公司 去块效应滤波方法和去块效应滤波器
CN106470341B (zh) 2015-08-17 2020-10-02 恩智浦美国有限公司 媒体显示系统
JP6620354B2 (ja) 2015-09-30 2019-12-18 Kddi株式会社 動画像の処理装置、処理方法及びコンピュータ可読記憶媒体
US10110926B2 (en) 2015-10-15 2018-10-23 Cisco Technology, Inc. Efficient loop filter for video codec
KR200486770Y1 (ko) 2015-12-17 2018-06-27 조기찬 공기층을 가지는 단열재
KR102233887B1 (ko) * 2016-12-27 2021-03-29 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
CN106604039B (zh) * 2016-12-28 2020-07-31 北京奇艺世纪科技有限公司 一种滤波方法及装置
WO2019099103A1 (en) * 2017-11-15 2019-05-23 Sandisk Technologies Llc Three-dimensional memory device with thickened word lines in terrace region and method of making thereof
EP3782371A4 (en) * 2018-03-30 2021-12-22 Sharp Kabushiki Kaisha SYSTEMS AND PROCEDURES FOR THE APPLICATION OF UNBLOCKING FILTERS ON RECONSTRUCTED VIDEO DATA
US10554975B1 (en) 2018-09-30 2020-02-04 Tencent America LLC Method and apparatus for video coding
JP7418152B2 (ja) 2018-12-17 2024-01-19 キヤノン株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3095140B2 (ja) 1997-03-10 2000-10-03 三星電子株式会社 ブロック化効果の低減のための一次元信号適応フィルター及びフィルタリング方法
FI117533B (fi) * 2000-01-20 2006-11-15 Nokia Corp Menetelmä digitaalisten videokuvien suodattamiseksi
WO2002096117A1 (en) 2001-05-25 2002-11-28 Pace Soft Silicon Limited Deblocking block-based video data
US7227901B2 (en) * 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
US20050013494A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation In-loop deblocking filter
US7430337B2 (en) 2004-01-06 2008-09-30 Sharp Laboratories Of America, Inc. System and method for removing ringing artifacts
US7539248B2 (en) * 2004-04-29 2009-05-26 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US20050243914A1 (en) * 2004-04-29 2005-11-03 Do-Kyoung Kwon Adaptive de-blocking filtering apparatus and method for mpeg video decoder
US7430336B2 (en) * 2004-05-06 2008-09-30 Qualcomm Incorporated Method and apparatus for image enhancement for low bit rate video compression
NO322722B1 (no) * 2004-10-13 2006-12-04 Tandberg Telecom As Fremgangsmate for videokoding gjennom reduksjon av blokkartefakter
JP4605052B2 (ja) * 2006-03-03 2011-01-05 日本電気株式会社 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、フィルタ装置及びプログラム
US8111760B2 (en) * 2006-11-16 2012-02-07 Texas Instruments Incorporated Deblocking filters
US20080123750A1 (en) 2006-11-29 2008-05-29 Michael Bronstein Parallel deblocking filter for H.264 video codec
CN101527841B (zh) * 2008-03-06 2011-05-11 瑞昱半导体股份有限公司 去除图像区块效应的方法及装置
US8566515B2 (en) * 2009-01-12 2013-10-22 Maxim Integrated Products, Inc. Memory subsystem
US8451952B2 (en) * 2009-12-30 2013-05-28 Telefonaktiebolaget L M Ericsson (Publ) Iterative decoding and demodulation with feedback attenuation
CN102860005B (zh) 2010-02-05 2016-07-06 瑞典爱立信有限公司 去块滤波控制
BR112013006832A2 (pt) * 2010-09-28 2017-05-23 Samsung Electronics Co Ltd método de filtragem adaptativa, e aparelho de filtragem adaptativa
CN101951519A (zh) * 2010-10-12 2011-01-19 西安电子科技大学 高速去块效应滤波方法
ES2714349T3 (es) * 2011-01-14 2019-05-28 Ericsson Telefon Ab L M Filtrado de desbloqueo

Also Published As

Publication number Publication date
CN106101707A (zh) 2016-11-09
BR112013015517A2 (pt) 2016-09-20
MX2013007960A (es) 2013-08-01
RU2550541C2 (ru) 2015-05-10
NZ612089A (en) 2015-07-31
ES2714349T3 (es) 2019-05-28
JP6096342B2 (ja) 2017-03-15
AP2013007049A0 (en) 2013-08-31
ES2548043T3 (es) 2015-10-13
HUE027993T2 (en) 2016-11-28
EP2938075B1 (en) 2018-12-05
AU2011354786B2 (en) 2016-05-26
TW201234858A (en) 2012-08-16
SG191247A1 (en) 2013-07-31
US20130003865A1 (en) 2013-01-03
US20160142739A1 (en) 2016-05-19
KR101670116B1 (ko) 2016-10-27
MY183761A (en) 2021-03-11
KR20140043715A (ko) 2014-04-10
EP2664141B1 (en) 2015-08-12
PL2664141T3 (pl) 2016-01-29
DK2664141T3 (en) 2015-08-31
US10142659B2 (en) 2018-11-27
RU2013134265A (ru) 2015-02-20
TWI538521B (zh) 2016-06-11
US20170302967A1 (en) 2017-10-19
HUE041988T2 (hu) 2019-06-28
IL226929A (en) 2017-01-31
EP2664141A4 (en) 2013-12-11
AU2011354786A1 (en) 2013-08-01
JP2016129388A (ja) 2016-07-14
JP5889953B2 (ja) 2016-03-22
JP5540163B2 (ja) 2014-07-02
US9407912B2 (en) 2016-08-02
CN106101707B (zh) 2019-04-19
CA2824739A1 (en) 2012-07-19
CA2824739C (en) 2017-06-20
JP2014507863A (ja) 2014-03-27
JP2014197847A (ja) 2014-10-16
WO2012096610A1 (en) 2012-07-19
EP2664141A1 (en) 2013-11-20
US8526509B2 (en) 2013-09-03
CN103299626B (zh) 2016-09-21
MA34906B1 (fr) 2014-02-01
EP2938075A1 (en) 2015-10-28
HK1185483A1 (zh) 2014-02-14
US20140050272A1 (en) 2014-02-20
PL2938075T3 (pl) 2019-05-31
US9743115B2 (en) 2017-08-22
PT2664141E (pt) 2015-10-21
AP3890A (en) 2016-11-10
CN103299626A (zh) 2013-09-11

Similar Documents

Publication Publication Date Title
BR112013015517B1 (pt) Método para reduzir artefatos de bloqueio, unidade de filtro de desbloqueio, codificador, decodificador, equipamento de usuário, e, dispositivo de rede
US11134277B2 (en) Deblocking filtering control
EP2664149A1 (en) Deblocking filtering
US10575021B2 (en) Controlling deblocking filtering

Legal Events

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

Ipc: H04N 19/86 (2014.01), H04N 19/117 (2014.01), H04N

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B25A Requested transfer of rights approved

Owner name: ERICSSON LLC (US)

B25A Requested transfer of rights approved

Owner name: VELOS MEDIA INTERNATIONAL LIMITED (IE)

B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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

B25G Requested change of headquarter approved

Owner name: VELOS MEDIA INTERNATIONAL LIMITED (IE)

B25A Requested transfer of rights approved

Owner name: ERICSSON LLC (IE)

B25A Requested transfer of rights approved

Owner name: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL) (SE)