I've put together a jME implementation....
IT'S NOT REALLY WORKING RIGHT NOW SO DONT USE IT YET!!!
The hard work is done, all 3 discrete steps have been implemented, it kinda half works, which is great, what remains to do is some coercing of image formats and some gamma related stuff to get it working correctly. I'm having trouble with this.
I'm pushed for time right now so I'm putting it up as is in case anyone else wants to take over, or redo it from scratch and have a starting point.