Aparentemente, a interpolação de pixel bicúbico é boa para aumentar ou diminuir a imagem (em tempo real ou não).
É recomendável usar um filtro passa-baixo antes de reduzir o tamanho ou a amostragem bicúbica lida com problemas de aliasing?
Aparentemente, a interpolação de pixel bicúbico é boa para aumentar ou diminuir a imagem (em tempo real ou não).
É recomendável usar um filtro passa-baixo antes de reduzir o tamanho ou a amostragem bicúbica lida com problemas de aliasing?
Respostas:
Se o passo de redução da amostra for projetado adequadamente, ele efetivamente executará a filtragem de passa-baixo como parte da amostragem reduzida. Não há necessidade de uma operação de filtro passa-baixas separada.
Essencialmente, quando você reduz a amostra, está executando um filtro sobre os pixels da imagem de origem (alta resolução), mas avaliando-o apenas nos locais dos pixels de destino (baixa resolução). O espaço ocupado por esse filtro precisa ter aproximadamente o espaçamento entre os pixels de destino, para evitar a perda de informações saltando sobre os pixels de origem intermediários. Mas isso significa que a área de cobertura do filtro terá vários pixels de origem e, portanto, passará efetivamente para baixo na fonte.
Por exemplo, suponhamos que você reduza a amostra de uma imagem exatamente 10 vezes em cada eixo. Com um filtro de caixa (por exemplo), você definiria cada pixel de destino como a média de uma caixa de 10x10 de pixels de origem. Isso eliminaria todos os recursos menores que 10 px, por isso é efetivamente um filtro passa-baixo.
Você menciona interpolação bicúbica; temos que fazer uma distinção entre filtragem e interpolação aqui. A interpolação é apropriada para aumentar a amostragem, não reduzir a amostragem. A interpolação bicúbica funciona ajustando um adesivo estriado bicúbico a uma vizinhança 4x4 de pixels e, em seguida, avaliando o adesivo em pontos interpolados. Embora possa funcionar bem o suficiente para reduzir a amostragem de imagens por um pequeno fator (até 2x mais ou menos), ele falhará se você for muito além disso. Por exemplo, se a amostragem for reduzida em 10x, como no exemplo anterior, você poderá ver que o bicúbico perderá a maioria dos pixels de origem e o resultado poderá ser um alias.
Por outro lado, a filtragem bicúbica é apenas uma filtragem padrão, usando um núcleo que é uma função bicúbica (em oposição a uma caixa, triângulo, Gaussiano, Lanczos, etc.). O kernel Mitchell-Netravali é o exemplo clássico desse tipo. Se usado para reduzir a amostragem, o kernel deve ser dimensionado adequadamente para o espaçamento de pixels de destino, conforme discutido anteriormente, e você somaria todos os pixels no espaço ocupado, não apenas um 4x4 ou outro bairro de tamanho fixo.