С точки зрения высокого уровня, вы сначала извлекаете данные вашего изображения RGB (обычно разделяя 3 канала). Затем для каждого канала вы разделяете изображение на 4:
Низкий проход по вертикали + Низкий проход по горизонтали в верхнем левом углу
Низкий проход по вертикали + Высокий проход по горизонтали в верхнем правом углу
Высокий проход по вертикали + Низкий проход по горизонтали в левом нижнем углу
Высокий проход по вертикали + Высокий проход по горизонтали в правом нижнем углу
Вы можете получить этот результат, сделав 2 прохода (1 по вертикали и 1 по горизонтали). Затем вы повторяете несколько раз, применяя фильтр к верхнему левому углу, чтобы получить конечный результат (пирамиду). Наконец, вы повторно комбинируете цветовые каналы.
Посмотрите на код здесь (вы можете игнорировать преобразование цвета RGB <-> YUV):
http://code.google.com/p/kanzi/source/browse/java/src/kanzi/test/TestDWT2.java
и здесь для реализации двумерного вейвлет-преобразования: http://code.google.com/p/kanzi/source/browse/java/src/kanzi/transform/DWT_CDF_9_7.java (дискретное вейвлет-преобразование Коэна-Добеши-Фово 9/7 для 2D-сигналов)
Преобразование отличается от вашего (поэтому детали реализации отличаются, но применяется общий алгоритм).
Этого должно быть достаточно, чтобы начать работу.