visão global
A resposta curta é que eles têm o número máximo de vanishing moments
para um dado support
(ou seja, número de coeficientes de filtro). Essa é a propriedade "extremal" que distingue as wavelets de Daubechies em geral. Em termos gerais, mais momentos de fuga implicam uma melhor compactação e um suporte menor implica menos computação. De fato, a troca entre momentos de fuga e tamanho do filtro é tão importante que domina a maneira como as wavelets são nomeadas. Por exemplo, você frequentemente verá a D4
wavelet chamada de D4
ou db2
. O 4
refere-se ao número de coeficientes e os2
refere-se ao número de momentos de fuga. Ambos se referem ao mesmo objeto matemático. Abaixo, explicarei mais sobre quais são os momentos (e por que queremos fazê-los desaparecer), mas, por enquanto, apenas entenda que isso se relaciona com o quão bem podemos "dobrar" a maioria das informações no sinal em um tamanho menor. número de valores. A compactação com perdas é alcançada mantendo esses valores e jogando fora os outros.
Agora, você deve ter notado que CDF 9/7
, usado em JPEG 2000
, tem dois números no nome, em vez de um. De fato, também é conhecido como bior 4.4
. Isso ocorre porque não é uma wavelet discreta "padrão". De fato, nem mesmo preserva tecnicamente a energia no sinal, e essa propriedade é toda a razão pela qual as pessoas ficaram tão empolgadas com o DWT em primeiro lugar! Os números, 9/7
e 4.4
, ainda se referem aos momentos de suporte e fuga, respectivamente, mas agora existem dois conjuntos de coeficientes que definem a wavelet. O termo técnico é que, em vez de serem orthogonal
, são biorthogonal
. Em vez de me aprofundar no que isso significa matematicamente, eu
JPEG 2000
Uma discussão muito mais detalhada das decisões de projeto em torno da wavelet do CDF 9/7 pode ser encontrada no seguinte documento:
Usevitch, Bryan E. Um tutorial sobre compressão de imagem com perda de onda moderna: Fundamentos do JPEG 2000 .
Vou apenas rever os pontos principais aqui.
Muitas vezes, as wavelets ortogonais de Daubechies podem realmente resultar no aumento do número de valores necessários para representar o sinal. O efeito é chamado coefficient expansion
. Se estamos fazendo compressão com perdas, isso pode ou não importar (já que estamos jogando fora os valores no final), mas definitivamente parece contraproducente no contexto da compressão. Uma maneira de resolver o problema é tratar o sinal de entrada como periódico.
Apenas tratar a entrada como periódica resulta em descontinuidades nas bordas, que são mais difíceis de compactar e são apenas artefatos da transformação. Por exemplo, considere os saltos de 3 a 0 na seguinte extensão periódica: . Para resolver esse problema, podemos usar uma extensão periódica simétrica do sinal, da seguinte maneira: . A eliminação de saltos nas bordas é uma das razões pelas quais a Discrete Cosine Transform (DCT) é usada em vez da DFT em JPEG. Representar um sinal com cossenos pressupõe implicitamente "loop de frente para trás" do sinal de entrada, então queremos wavelets que tenham a mesma propriedade de simetria.[0,1,2,3]→[...0,1,2,3,0,1,2,3,...][0,1,2,3]→[...,0,1,2,3,3,2,1,0,0,1...]
Infelizmente, a única wavelet ortogonal que possui as características necessárias é a wavelet Haar (ou D2, db1), que apenas como um momento de fuga. Ugh. Isso nos leva a wavelets biortogonais, que na verdade são representações redundantes e, portanto, não preservam energia. A razão pela qual as wavelets CDF 9/7 são usadas na prática é porque elas foram projetadas para se aproximar muito da preservação de energia. Eles também testaram bem na prática.
Existem outras maneiras de resolver os vários problemas (mencionados brevemente no artigo), mas esses são os traços gerais dos fatores envolvidos.
Momentos Desaparecidos
Então, quais são os momentos e por que nos importamos com eles? Sinais suaves podem ser bem aproximados por polinômios, ou seja, funções da forma:
a+bx+cx2+dx3+...
Os momentos de uma função (ou seja, sinal) são uma medida de quão semelhante é a uma dada potência de x. Matematicamente, isso é expresso como um produto interno entre a função e o poder de x. Um momento de fuga significa que o produto interno é zero e, portanto, a função não "se assemelha" à potência de x, da seguinte forma (no caso contínuo):
∫xnf(x)dx=0
Agora, cada wavelet discreta e ortogonal possui dois filtros FIR associados, que são usados no DWT . Um é um filtro passa-baixo (ou em escala) e o outro é um filtro passa-alto (ou wavelet)ϕψ. Essa terminologia parece variar um pouco, mas é o que vou usar aqui. Em cada estágio do DWT, o filtro passa-alto é usado para "descolar" uma camada de detalhes, e o filtro passa-baixo produz uma versão suavizada do sinal sem esse detalhe. Se o filtro passa-alto tiver momentos de fuga, esses momentos (ou seja, recursos polinomiais de baixa ordem) serão inseridos no sinal suavizado complementar, em vez do sinal de detalhe. No caso de compressão com perdas, esperamos que o sinal de detalhe não tenha muita informação e, portanto, podemos jogar a maior parte dele fora.
Aqui está um exemplo simples usando a wavelet Haar (D2). Normalmente, há um fator de escala de envolvido, mas eu o omito aqui para ilustrar o conceito. Os dois filtros são os seguintes:
1/2–√
ϕ=[1,1]ψ=[1,−1]
O filtro passa-alto desaparece pelo zeroésimo momento, ou seja, , portanto, ele tem um momento de fuga. Para ver isso, considere este sinal constante: . Agora, intuitivamente, deve ser óbvio que não há muita informação lá (ou em qualquer sinal constante). Poderíamos descrever a mesma coisa dizendo "quatro pares". O DWT nos fornece uma maneira de descrever essa intuição explicitamente. Aqui está o que acontece durante uma única passagem do DWT usando a wavelet Haar:x0=1[2,2,2,2]
[2,2,2,2]→ϕψ{[2+2,2+2]=[4,4][2−2,2−2]=[0,0]
E o que acontece na segunda passagem, que opera apenas com o sinal suavizado:
[4,4]→ϕψ{[4+4]=[8][4−4]=[0]
Observe como o sinal constante é completamente invisível aos passes de detalhes (que acabam sendo 0). Observe também como quatro valores de foram reduzidos para um valor único de . Agora, se quiséssemos transmitir o sinal original, poderíamos simplesmente enviar o , e o DWT Inverso poderia reconstruir o sinal original assumindo que todos os coeficientes de detalhe são zero. Wavelets com momentos de fuga de ordem superior permitem resultados semelhantes com sinais bem aproximados por linhas, parábolas, cubicos, etc.8 8288
Leitura adicional
Estou encobrindo muitos detalhes para manter o tratamento acima acessível. O artigo a seguir tem uma análise muito mais profunda:
M. Unser e T. Blu, propriedades matemáticas dos filtros de wavelet JPEG2000 , IEEE Trans. Image Proc., Vol. 12, n. 9, setembro de 2003, págs. 1080-1090.
Nota de rodapé
O artigo acima parece sugerir que a wavelet JPEG2000 é chamada Daubechies 9/7 e é diferente da wavelet CDF 9/7.
Nós derivamos a forma exata dos filtros de escala JPEG2000 Daubechies 9/7 ... Esses filtros resultam da fatoração do mesmo polinômio que [10]. A principal diferença é que os filtros 9/7 são simétricos. Além disso, ao contrário das estrias biortogonais de Cohen-Daubechies-Feauveau [11], a parte não-regular do polinômio foi dividida entre os dois lados e da maneira mais uniforme possível.Daubechies8
[11] A. Cohen, I. Daubechies e JC Feauveau, "Bases biortogonais de wavelets compactamente suportadas", Comm. Pure Appl. Math. Vol. 45, n. 5, pp. 485-560, 1992.
O rascunho do padrão JPEG2000 ( link em pdf ) que eu procurei também chama o filtro oficial Daubechies 9/7. Referencia este artigo:
M. Antonini, M. Barlaud, P. Mathieu e I. Daubechies, "Codificação de imagens usando a transformada wavelet", IEEE Trans. Image Proc. 1, pp. 205-220, abril de 1992.
Como não li nenhuma dessas fontes, não sei por que a Wikipedia chama a wavelet JPEG2000 CDF 9/7. Parece que pode haver uma diferença entre os dois, mas as pessoas chamam o wavelet oficial de JPEG2000 CDF 9/7 de qualquer maneira (porque é baseado na mesma base?). Independentemente do nome, o artigo de Usevitch descreve o que é usado no padrão.